C语言 练习题 老师分糖果

编程入门 行业动态 更新时间:2024-10-11 07:28:27

C语言 <a href=https://www.elefans.com/category/jswz/34/1768594.html style=练习题 老师分糖果"/>

C语言 练习题 老师分糖果

问题描述:
幼儿园老师将糖果分成若干等份,让学生按任意次序领取,第1个领取的,得到1份加上剩余糖果的1/10;第2个领取的,得到2份加上剩余糖果的1/10;第3个领取的,得到3份加上剩余糖果的1/10,…依次类推。问共有多少个学生?老师将糖果分成了多少等份?
思路描述:从逻辑角度考察:从部分推整体;而这种 仅仅知道 判断条件(在程序代码中的三个if语句) 和 循环 的问题 最常用的是试数法 或者 叫 穷举法。
这道题 或许 在刚刚 读完题时 一头雾水 (我第一次做时 连题目都没读懂呢,嘻嘻) 但是呢 虽然没有一口气做出来。但是我们可以 进行分析,逐个破解。
1、使用 穷举法 那么 穷举的对象 自然是 糖果 份数(如果是学生的话,题目条件难以利用)糖果 至少11份;
2、学生是 任意排序的 也就是说 任意 一位 在 任何的顺序中得到的糖果数 以及 与其他学生 所得的份数是一致的 。那好 设置两个变量 将 两种情形的 数据进行 比较,如果相等 那么该数 是符合题意的。
3、因为 sum1 是(n+9)/10 的 此时,剩下的份数为:n-(n+9)/10= (9n-9)/10.
那么sum2 便是 sum2=2+ ((9n-9)/10-2)*1/10,化简后为sum2= (9n+171)/100。

#include <stdio.h>
void main()
{int n;   // 定义整型变量 n 表示糖果个数
;	float sum1,sum2;	//定义浮点型变量 任意两个学生 所得到的的糖果份数for (n=11;;n++)	//糖果 至少是11 份 每次循环 叠加 1 进行试数{sum1 = (n+9)/10;// 化简前:sum1=1 + (n-1)*1/10sum2 = (9*n+171)/100.0;//化简前:sum2=2+ ((9n-9)/10-2)*1/10if (sum1 !=(int)sum1)continue;if (sum2 != (int)sum2)continue;if (sum1!=sum2)break;}printf("学生一共有 %d 人,糖果份数有 %d 份 ",(int)(n/sum1),n);
}

更多推荐

C语言 练习题 老师分糖果

本文发布于:2024-03-23 18:11:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1741249.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:练习题   糖果   语言   老师

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!