分糖果問題 方法一

2021-08-18 13:16:26 字數 977 閱讀 5671

10個小孩圍成一圈分糖果,老師分給第乙個孩子10塊,第二個小孩2塊,後面依次分的糖果數量為8、22、16、4、10、6、14、20。然後所有的小孩同時將手中的糖果分一半給右邊的小孩,糖果為奇數的可向老師要一塊。問經過幾次後,大家手中的糖果的塊數將一樣多,每個人有多少糖果。

這個問題的關鍵在於「所有的小孩同時將手中的糖果分一半給右邊的小孩」之後每個人的糖果數是如何變化的?

//每個小孩糖果初始值以及迴圈次數初始值

intarr = ;

inttimes = 0;

//迴圈繼續的條件是任意兩個小孩的糖果數不相等

// 函式isequal()判斷任意兩個小孩的糖果數是否相等

while(isequal(arr))

arr [9] =( temp1+arr [9])/2;//第9個孩子的糖果變化

times ++;//分配完畢 迴圈次數增加

for(intj = 0; j<10; j++)//誰的糖果為奇數就增加1

}system.out.printf("經過%d次的交換,每個人都有%d顆糖",times ,arr [0]);

}/**

*判斷乙個一維陣列的所有元素是否相等

*@param

arr

陣列*

@return

true-相等 false-不相等

*/private static booleanisequal(intarr)

}return false;

}

分糖果問題

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

分糖果問題(java)

10個小孩圍成一圈分糖果,老師分給第乙個小孩10塊,第二個小孩2塊,第三個小孩8塊,第四個小孩22塊,第五個小孩16塊,第六個小孩4塊,第七個小孩10塊,第八個小孩6塊,第九個小孩14塊,第十個小孩20塊。然後所有的小孩同時將手中的糖分一半給右邊的小孩 糖塊數為奇數的人可向老師要一塊。問經過幾次後大...

分糖果問題 藍橋杯

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