例:幼儿园老师将糖果分成若干等份,让学生按任意次序领取,第1个领取的,得到1份加上剩余糖果的1/10;第2个领取的,得到2份加上剩余糖果的1/10;第3个领取的,得到3份加上剩余糖果的1/10;……依此类推。问共有多少个学生?老师共将糖果分成了多少等份?
分析:
设一开始等分成了n等份(无末值),结合生活实际可知,这样分要使最终每个学生得到的糖果份数为整份数且相等(公平),可以作为循环的终止条件;要使第一个学生得到的份数为整份数,则n由初值11
学生人数=总份数/每个人得到的份数(可以用第1个人得到的份数代替)
核心算法:
①穷举时由部分推整体:只要第一个人和第二个人得到的份数为整数且相等就代表这种分法正确(遍历到的n是对的),全体学生得到的份数都是整数且相等
②判断一个浮点数是整的无有效小数部分(常用作条件判断):
float sum;
sum==(int) sum;
#include<stdio.h>
int main