題目 分糖果

2021-10-06 09:42:32 字數 900 閱讀 3094

有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個糖果,從而變成偶數。反覆進行這個遊戲,直到所有小朋友的糖果數都相同為止。你的任務是 在已知的初始糖果情形下,老師一共需要補...

分糖果問題

問題描述 有不同分數的小孩排隊,怎麼分糖果使得糖果數最小,且分數高的小孩分到盡可能多的糖果。分析 每個小孩至少可分到乙個糖果,且分數不固定,所以分數高的小孩要盡可能的只比旁邊的兩個人分的糖果多,而分數低的要盡可能的少。解題思路 分別從前後進行掃瞄,讓每個小孩都能分到糖果,保證分數高的盡可能多於兩邊的...