c语言百钱买百鸡问题.docx

上传人:小飞机 文档编号:3060807 上传时间:2023-03-10 格式:DOCX 页数:4 大小:37.35KB
返回 下载 相关 举报
c语言百钱买百鸡问题.docx_第1页
第1页 / 共4页
c语言百钱买百鸡问题.docx_第2页
第2页 / 共4页
c语言百钱买百鸡问题.docx_第3页
第3页 / 共4页
c语言百钱买百鸡问题.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《c语言百钱买百鸡问题.docx》由会员分享,可在线阅读,更多相关《c语言百钱买百鸡问题.docx(4页珍藏版)》请在三一办公上搜索。

1、c语言百钱买百鸡问题百钱买百鸡问题一百个铜钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,小鸡一钱3只,问一百只鸡中公鸡、母鸡、小鸡各多少)。 这是一个古典数学问题,设一百只鸡中公鸡、母鸡、小鸡分别为x,y,z,问题化为三元一次方程组: 5x+3y+z/3=100(百钱) x+y+z=100(百鸡)这里x,y,z为正整数,且z是3的倍数;由于鸡和钱的总数都是100,可以确定x,y,z的取值范围: 1) x的取值范围为120 2) y的取值范围为133 3) z的取值范围为399,步长为3 对于这个问题我们可以用穷举的方法,遍历x,y,z的所有可能组合,最后得到问题的解。 数据要求 问题中的常量

2、: 无 问题的输入: 无 问题的输出: int x,y,z /*公鸡、母鸡、小鸡的只数*/ 初始算法 1初始化为1; 2计算x循环,找到公鸡的只数; 3计算y循环,找到母鸡的只数; 4计算z循环,找到小鸡的只数; 5结束,程序输出结果后退出。 算法细化 算法的步骤1实际上是分散在程序之中的,由于用的是for循环,很方便的初始条件放到了表达式之中了。 步骤2和3是按照步长1去寻找公鸡和母鸡的个数。 步骤4的细化 41 z1 42 是否满足百钱,百鸡 421 满足,输出最终百钱买到的百鸡的结果 422 不满足,不做处理 43 变量增加,这里注意步长为3 流程图 版权所有:东北大学计算中心 开始定义

3、x,y,zx=20?NYNy=33?YNz=99?Y百钱和百鸡?YN输出百鸡的结果 结束图5-8 程序执行流程图 程序代码如下 #include stdio.h main int x,y,z; for(x=1;x=20;x+) for(y=1;y=33;y+) for(z=3;z=99;z+=3) if(5*x+3*y+z/3=100)&(x+y+z=100)/*是否满足百钱和百鸡的条件*/ printf(cock=%d,hen=%d,chicken=%dn,x,y,z); 分析 程序运行结果如下: cock=4,hen=8,chicken=78 cock=8,hen=11,chicken=81 cock=12,hen=4,chicken=84 版权所有:东北大学计算中心 对于这个问题实际上可以不用三重循环,而是用二重循环,因为公鸡和母鸡数确定后,小鸡数就定了,即z=100-x-y。请同学们自己分析二重循环和三重循环的运行次数,做为练习自己调试这一方法。 版权所有:东北大学计算中心

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号