例:幼兒園老師將糖果分成若干等份,讓學生按任意次序領取,第1個領取的,得到1份加上剩餘糖果的1/10;第2個領取的,得到2份加上剩餘糖果的1/10;第3個領取的,得到3份加上剩餘糖果的1/10;……依此類推。問共有多少個學生?老師共將糖果分成了多少等份?
分析:
設一開始等分成了n等份(無末值),結合生活實際可知,這樣分要使最終每個學生得到的糖果份數為整份數且相等(公平),可以作為迴圈的終止條件;要使第乙個學生得到的份數為整份數,則n由初值11核心演算法:學生人數=總份數/每個人得到的份數(可以用第1個人得到的份數代替)
①窮舉時由部分推整體:只要第乙個人和第二個人得到的份數為整數且相等就代表這種分法正確(遍歷到的n是對的),全體學生得到的份數都是整數且相等②判斷乙個浮點數是整的無有效小數部分(常用作條件判斷):
float sum;
sum==(int) sum;
#include
intmain()
printf
("共有%d個學生\n將糖果分成了%d份",(
int)
(n/sum1)
,n);
printf
("\n");
return0;
}
分糖果(模擬)
問題描述 有n個小朋友圍坐成一圈。老師給每個小朋友隨機發偶數個糖果,然後進行下面的遊戲 每個小朋友都把自己的糖果分一半給左手邊的孩子。一輪分糖後,擁有奇數顆糖的孩子由老師補給1個糖果,從而變成偶數。反覆進行這個遊戲,直到所有小朋友的糖果數都相同為止。你的任務是 在已知的初始糖果情形下,老師一共需要補...
分糖果問題
問題描述 有不同分數的小孩排隊,怎麼分糖果使得糖果數最小,且分數高的小孩分到盡可能多的糖果。分析 每個小孩至少可分到乙個糖果,且分數不固定,所以分數高的小孩要盡可能的只比旁邊的兩個人分的糖果多,而分數低的要盡可能的少。解題思路 分別從前後進行掃瞄,讓每個小孩都能分到糖果,保證分數高的盡可能多於兩邊的...
題目 分糖果
有n個小朋友圍坐成一圈。老師給每個小朋友隨機發偶數個糖果,然後進行下面的遊戲 每個小朋友都把自己的糖果分一半給左手邊的孩子。一輪分糖後,擁有奇數顆糖的孩子由老師補給1個糖果,從而變成偶數。反覆進行這個遊戲,直到所有小朋友的糖果數都相同為止。你的任務是 在已知的初始糖果情形下,老師一共需要補發多少個糖...