藍橋杯試題 歷屆試題 分糖果

2021-10-06 23:49:03 字數 1104 閱讀 5547

問題描述

有n個小朋友圍坐成一圈。老師給每個小朋友隨機發偶數個糖果,然後進行下面的遊戲:

每個小朋友都把自己的糖果分一半給左手邊的孩子。

一輪分糖後,擁有奇數顆糖的孩子由老師補給1個糖果,從而變成偶數。

反覆進行這個遊戲,直到所有小朋友的糖果數都相同為止。

你的任務是**在已知的初始糖果情形下,老師一共需要補發多少個糖果。

輸入格式

程式首先讀入乙個整數n(2我的解法

#include

using namespace std;

int a[

10000

],b[

10000];

int d =0;

int count1 =3;

int c =0;

intcheck()

return1;

}int

main()

do a[count1 -1]

= a[count1 -1]

/2+ b[0]

;for

(int i =

0; i < count1-

1; i++

)for

(int i =

0; i < count1; i++)}

}while(!

check()

);cout << d;

return0;

}

這個題要把題意理解正確,分糖果的時候是每個人同時拿一半糖果,而不是乙個人拿完再給另外乙個人,另外乙個人拿著這份糖果再給另乙個人。

還有一點是要注意是向左,也就是從後往前加,第乙個人給最後乙個人加。

**細節注意

for

(int i =

0; i < count1-

1; i++

)

這裡的下標和迴圈結束條件,下標有i+1,迴圈往後退乙個變成count-1.

同樣注意陣列下標與迴圈的結束條件

注意驗證乙個陣列是否不等的寫法

int check()

return1;

}

藍橋杯 歷屆試題 分糖果

歷屆試題 分糖果 時間限制 1.0s 記憶體限制 256.0mb 問題描述 有n個小朋友圍坐成一圈。老師給每個小朋友隨機發偶數個糖果,然後進行下面的遊戲 每個小朋友都把自己的糖果分一半給左手邊的孩子。一輪分糖後,擁有奇數顆糖的孩子由老師補給1個糖果,從而變成偶數。反覆進行這個遊戲,直到所有小朋友的糖...

藍橋杯 歷屆試題 分糖果

歷屆試題 分糖果 時間限制 1.0s 記憶體限制 256.0mb 問題描述 有n個小朋友圍坐成一圈。老師給每個小朋友隨機發偶數個糖果,然後進行下面的遊戲 每個小朋友都把自己的糖果分一半給左手邊的孩子。一輪分糖後,擁有奇數顆糖的孩子由老師補給1個糖果,從而變成偶數。反覆進行這個遊戲,直到所有小朋友的糖...

藍橋杯 歷屆試題 分糖果

藍橋杯 歷屆試題 分糖果 問題描述 有n個小朋友圍坐成一圈。老師給每個小朋友隨機發偶數個糖果,然後進行下面的遊戲 每個小朋友都把自己的糖果分一半給左手邊的孩子。一輪分糖後,擁有奇數顆糖的孩子由老師補給1個糖果,從而變成偶數。反覆進行這個遊戲,直到所有小朋友的糖果數都相同為止。你的任務是 在已知的初始...