当前位置:   article > 正文

【C语言之四 趣味编程 老师分糖果】_c语言分糖果问题

c语言分糖果问题

C语言之四 趣味编程 老师分糖果

问题:

幼儿园老师将糖果分成了若干等份,让学生按任意次序上来领,第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;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

运行:

在这里插入图片描述

总结:

关于这个分糖果的问题,原题目是没有“每个学生领到的糖果一样多”这句话的,但是参看了答案,我觉得如果没有这句话,那么这个解法我是看不懂的。所以我增加了“每个学生领到的糖果一样多”,这句话,如果没有这句话你也看不懂,那么我想我们的认知可能是一致的。如果没有这句话,用这个解法能讲的通,,那么希望你在评论留言赐教,我是愿意学习的。

其他:

C语言之三 趣味编程 百钱买百鸡

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/427638
推荐阅读
相关标签
  

闽ICP备14008679号