有n個小朋友圍坐成一圈。老師給每個小朋友隨機發偶數個糖果,然後進行下面的遊戲:
每個小朋友都把自己的糖果分一半給左手邊的孩子。
一輪分糖後,擁有奇數顆糖的孩子由老師補給1個糖果,從而變成偶數。
反覆進行這個遊戲,直到所有小朋友的糖果數都相同為止。
你的任務是**在已知的初始糖果情形下,老師一共需要補發多少個糖果。
(程式首先讀入乙個整數n(2< n< 100),表示小朋友的人數。
接著是一行用空格分開的n個偶數(每個偶數不大於1000,不小於2) )
#
include
void
main()
int num =0;
//用於儲存老師補發了多少糖果
while(1
)//死迴圈(內部設定當糖果數都一樣時退出迴圈)
a[b -1]
/=2;//最後乙個小朋友糖果減半
a[b -1]
+= n;
//再加上第乙個小朋友給他的糖果
int i =1;
//用於判斷糖果數是否全部相等
for(
int x =
0; x < b; x++
)//遍歷所有小朋友
if(x !=
0&& a[x]
!= a[x -1]
)//當前不是第乙個小朋友時,判斷手中的糖果是否和左邊小朋友相等
//不相等就將i賦值0}if
(i)//當i仍為1,則代表所有小朋友糖果數相等,結束死迴圈
}printf
("%d"
, num)
;//輸出共補發了多少糖果
}
很久以前剛學的時候寫的乙個**,變數名用的好隨意啊 其他題目 分糖果問題
題目 一群孩子做遊戲,現在請你根據遊戲得分來發糖果,要求如下 1 每個孩子不管得分多少,起碼分到1個糖果 2 任意兩個相鄰的孩子之間,得分較多的孩子必須多拿一些糖果 給定乙個陣列arr代表得分陣列,請返回最少需要多少糖果。例如 arr 1,2,2 糖果分配 1,2,1 即可滿足要求且數量最少,所以返...
分糖果(模擬)
問題描述 有n個小朋友圍坐成一圈。老師給每個小朋友隨機發偶數個糖果,然後進行下面的遊戲 每個小朋友都把自己的糖果分一半給左手邊的孩子。一輪分糖後,擁有奇數顆糖的孩子由老師補給1個糖果,從而變成偶數。反覆進行這個遊戲,直到所有小朋友的糖果數都相同為止。你的任務是 在已知的初始糖果情形下,老師一共需要補...
分糖果問題
問題描述 有不同分數的小孩排隊,怎麼分糖果使得糖果數最小,且分數高的小孩分到盡可能多的糖果。分析 每個小孩至少可分到乙個糖果,且分數不固定,所以分數高的小孩要盡可能的只比旁邊的兩個人分的糖果多,而分數低的要盡可能的少。解題思路 分別從前後進行掃瞄,讓每個小孩都能分到糖果,保證分數高的盡可能多於兩邊的...