赞
踩
幼儿园老师将糖果分成了若干等份,让学生按任意次序上来领,第1个来领的,得到一份加上剩余糖果的十分之一;第2个来领的,得到2份加上剩余糖果的十分之一;第3个来领的,得到3份加上剩余的十分之一,…依此类推,直到糖果分完。每个学生领到的糖果一样多。问共有多少个学生,老师共将糖果分成了多少等份?
(为了我能够解这道题,我增加了“每个学生领到的糖果一样多”这个条件)
设老师共将糖果分成n等份,第一个学生得到份数1+(n-1)/10=(n+9)/n
第二个学生得到的份数2+(n- 1-2-(n-1)/10 )/10=(9*n+171)/100
#include <stdio.h>
int main(void) {
int n; //定义变量为整形
float sum1,sum2; //应为单精度型,否则结果不准确
for (n=11;;n++){ //至少11份,第一个学生领到的才是完整份数
sum1 = (n+9)/10.0; // 第一个同学领到的份数
sum2 = (9*n+171)/100.0; //第二个同学领到的份数
if((sum1!=(int)(sum1) || (sum2!=(int)sum2))) //如果领到的份数不是整数,继续运行
continue;
if (sum1 == sum2 )//如果领到的份数相等 ,已经求得能分到的份数。
break;
}
printf("共有学生%d 名 共分成了%d 份\n",(int)(n/sum1),n); //输出结果
return 0;
}
关于这个分糖果的问题,原题目是没有“每个学生领到的糖果一样多”这句话的,但是参看了答案,我觉得如果没有这句话,那么这个解法我是看不懂的。所以我增加了“每个学生领到的糖果一样多”,这句话,如果没有这句话你也看不懂,那么我想我们的认知可能是一致的。如果没有这句话,用这个解法能讲的通,,那么希望你在评论留言赐教,我是愿意学习的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。