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

2021-10-12 01:31:17 字數 927 閱讀 4893

盒子取球方法二今盒子裡有 n 個小球,a、b 兩人輪流從盒中取球,每個人都可以看到另乙個人取了多少個,

也可以看到盒中還剩下多少個,並且兩人都很聰明,不會做出錯誤的判斷。

我們約定:每個人從盒子中取出的球的數目必須是:1,3,7 或者 8 個。輪到某一方取球時不能棄權!

a 先取球,然後雙方交替取球,直到取完。被迫拿到最後乙個球的一方為負方(輸方)請程式設計確定出在雙方都

不判斷失誤的情況下,對於特定的初始球數,a 是否能贏?程式執行時,從標準輸入獲得資料,其格式如下:

先是乙個整數 n(n<100),表示接下來有 n 個整數。然後是 n 個整數,每個佔一行(整數<10000),

表示初始球數。程式則輸出 n 行,表示 a 的輸贏情況(輸為 0,贏為 1)。

分析:當 n==1 時,a一定會輸,當n等於3,5時a也會輸,n為2,4,8時a必定會贏,由此分析當 n 為 1+

[1,3,7,8]時,a可以取[1,3,7,8]得乙個數,然後將1留給b,也就是說,有些必輸得數誰取到誰就會輸。當 n為乙個必輸

的值加上[1,3,4,8]時a比贏。

**如下:

#include

void fun(int *a)

int b=;

int i;

for(i=1;i+8<=1000;i++)//注意此處i的取值,

if(a[i]==0)

for(int j=0;j<=3;j++)//根據必輸的值找出必贏的值

a[i+b[j]]=1;

int main()

int a[1001]=;

int n,m;

scanf("%d",&n);

fun(a);

while(n--)

scanf("%d",&m);

printf("%d\n",a[m]);

return 0;

所有取球方案

程式設計題 袋子裡有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的情況 遞...

藍橋杯取球博弈

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

藍橋杯 取球博弈

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