所有取球方案

2021-10-11 07:57:00 字數 624 閱讀 5808

程式設計題:袋子裡有n個球,每次取只能取1個、2個、3個球,請輸出所有可能的情況。例如,假設袋子裡有4個球,則所有可能情況為:

1 1 1 1

1 2 1

1 32 2

3 11 1 2

2 1 1

思路:固定第一次取球次數i,然後考慮袋子裡有n-i個球的情況。固定第二次取j,考慮n-i-j的情況…遞迴至袋子裡有0個球的情況:列印數列,並pop出最後乙個取值。

def

takeball

(res,ball,arg)

:if res<=0:

print

(arg)

arg.pop(

)return

for i in ball:

if res-i>=0:

takeball(res-i,ball,arg)

if arg !=

: arg.pop(

)if __name__==

"__main__"

: mylist=

ball=[1

,2,3

] takeball(

4,ball,mylist)

python盒中取球 盒子取球C語言 藍橋杯

盒子取球方法二今盒子裡有 n 個小球,a b 兩人輪流從盒中取球,每個人都可以看到另乙個人取了多少個,也可以看到盒中還剩下多少個,並且兩人都很聰明,不會做出錯誤的判斷。我們約定 每個人從盒子中取出的球的數目必須是 1,3,7 或者 8 個。輪到某一方取球時不能棄權!a 先取球,然後雙方交替取球,直到...

藍橋杯取球博弈

題目 取球博弈 兩個人玩取球的遊戲。一共有n個球,每人輪流取球,每次可取集合中的任何乙個數目。如果無法繼續取球,則遊戲結束。此時,持有奇數個球的一方獲勝。如果兩人都是奇數,則為平局。假設雙方都採用最聰明的取法,第乙個取球的人一定能贏嗎?試程式設計解決這個問題。輸入格式 第一行3個正整數n1 n2 n...

藍橋杯 取球博弈

取球博弈 今盒子裡有n個小球,a b兩人輪流從盒中取球,每個人都可以看到另乙個人取了多少個,也可以看到盒中還剩下多少個,並且兩人都很聰明,不會做出錯誤的判斷。我們約定 每個人從盒子中取出的球的數目必須是 1,3,7或者8個。輪到某一方取球時不能棄權!a先取球,然後雙方交替取球,直到取完。被迫拿到最後...