1.题目
幼儿园老师将糖果分成了若干等份,让学生按任意次序上来领,第1个来领的,得到1份加上剩余糖果的十分之一;第2个来领的,得到2份加上剩余糖果的十分之一;第3个来领的,得到3份加上剩余糖果的十分之一……以此类推。问共有多少个学生,老师将糖果平均分成了多少分?
2.代码
#include<stdio.h>
int main(void)
{
int n;
float sum1, sum2; //sum1和sum2应为浮点型。
for (n = 11;; n++) //开始时,糖果数量至少为11个
{
sum1 = (n + 9) / 10.0; //第一个学生得到的糖果份数
sum2 = (9 * n + 171) / 100.0; //第二个学生得到的糖果份数
if (sum1 != (int)sum1)
{
continue;
}
if (sum2 != (int)sum2) //学生得到的糖果数必定为整数
{
continue;
}
if (sum1 == sum2)
{
break;
}
}
printf("该幼儿园共有%d个学生\n将糖果分成了%d份", (int)(n / sum1), n);
return 0;
}
3.个人见解
设n为老师分的糖果总份数
第一个学生分到的糖果数量为:sum1=(n+9)/10;
第二个学生分到的糖果数量为:sum2=(9*n+171)/100;
使用穷举法,当sum1=sum2时,即可求出老师将糖果分成的份数和学生的数量。