老师分糖果问题:书上给的一段代码,没看懂,有空的帮忙看看啊……
题目:幼儿园老师将糖果平均分成若干份,让学生按任意次序上来领,第一个来领的,得分一份加上剩下的十分之一
第二个上来领,得到2份和剩下的十分之一,依次……知道最后一个上来分完为止
书上源程序:
#include <stdio.h>
void main()
{
int n;
float sum1,sum2; /*定义sum1和sum2应为单精度型*/ //表示看了半天sum1和sum2指的是哪两个人都没弄明白…………
for(n=11;;n++)
{
sum1=(n+9)/10.0;
sum2=(9*n+171)/100.0; //这个171不知道什么东东,还有上面的n+9之类的也不明白
if(sum1!=(int)sum1)
continue;
if(sum2!=(int)sum2)
continue;
if(sum1==sum2) /*当sum1等于sum2时,跳出循环*/
break;
}
printf("共有%d个学生\n将糖果分成了%d份\n",(int)(n/sum1),n);
}
下面是我自己写的:
#iclude <stdio.h>
#include <stdlib.h>
int main()
{
int m;
// int x=1;
for(m==3;;m++)
{
if(((m-1)*m+(m*m)/9==m*m)&&m%3==0)
{
break;
}
}
printf("学生人数为:%d人\n",m);
printf("老师将糖果分成了:%d份\n",m*m);
return 0;
}
感觉读代码能力还不行,求大神们指点迷津…………