題目描述:
有n個小朋友圍坐成一圈。老師給每個小朋友隨機發偶數個糖果,然後進行下面的遊戲:每個小朋友都把自己的糖果分一半給左手邊的孩子。一輪分糖後,擁有奇數顆糖的孩子由老師補給1個糖果,從而變成偶數。反覆進行這個遊戲,直到所有小朋友的糖果數都相同為止。你的任務是**在已知的初始糖果情形下,老師一共需要補發多少個糖果。
輸入格式
程式首先讀入乙個整數n(2思路解析:
本題分別模擬以下三個過程即可:
把自己手中的糖果分一半給左手邊的孩子
給擁有奇數顆糖的孩子補給1個糖果
判斷所有糖果數是否相等
對於第一過程思路為:
**:
#include
#include
#include
#include
#include
using
namespace std;
intpanduan
(vector<
int> a)
//判斷糖果數是否相等
return
true;}
vector<
int>
buji
(vector<
int> a)
//給擁有奇數顆糖的孩子補給1個糖果
return a;
}vector<
int>
fenpei
(vector<
int> a)
//自己的糖果分一半給左手邊的孩子
for(
int i=
0;isize()
;i++
)return c;
}int
main()
while(!
panduan
(a))
cout<
-sum<
}
執行結果: 藍橋杯 分糖果
歷屆試題 分糖果 問題描述 有n個小朋友圍坐成一圈。老師給每個小朋友隨機發偶數個糖果,然後進行下面的遊戲 每個小朋友都把自己的糖果分一半給左手邊的孩子。一輪分糖後,擁有奇數顆糖的孩子由老師補給1個糖果,從而變成偶數。反覆進行這個遊戲,直到所有小朋友的糖果數都相同為止。你的任務是 在已知的初始糖果情形...
藍橋杯 分糖果
有n個小朋友站成一排 編號從0到n 1 每個小朋友有乙個rating值,存放在ratings陣列中。老師需要給他們分配糖果,每個小朋友至少需要一顆糖果,對於任意相鄰的兩個小朋友i和i 1,rating值大的必須比rating值小的分配的糖果多 rating相同的沒必要分配一樣多的糖果 請計算最少需要...
分糖果 藍橋杯
有n個小朋友圍坐成一圈。老師給每個小朋友隨機發偶數個糖果,然後進行下面的遊戲 每個小朋友都把自己的糖果分一半給左手邊的孩子。一輪分糖後,擁有奇數顆糖的孩子由老師補給1個糖果,從而變成偶數。反覆進行這個遊戲,直到所有小朋友的糖果數都相同為止。你的任務是 在已知的初始糖果情形下,老師一共需要補發多少個糖...