問題描述
有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個糖果,從而變成偶數。反覆進行這個遊戲,直到所有小朋友的糖果數都相同為止。你的任務是 在已知的初始...