博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
I00023 鸡兔同笼解法二
阅读量:7079 次
发布时间:2019-06-28

本文共 1106 字,大约阅读时间需要 3 分钟。

穷举法是程序员常用的手法,参见《》。

鸡兔同笼问题是中的第31题。今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?答曰:雉二十三。兔一十二。

一天,老师布置家庭作业,做鸡兔同笼问题。小明不喜欢做复杂计算,回家后开始训练鸡和兔。小明吹一声哨,鸡和兔都抬起一条腿,小明又吹一声哨,鸡和兔又再抬起一条腿,鸡就一屁股坐地下了,兔两腿站立。于是,小明明白了应该怎么算这个题。兔的数量=(脚数-头数-头数)/2,鸡的数量=头数-兔的数量。

程序员要解决实际问题,需要面对三个世界,一是现实世界,二是数学世界,三是数据世界。现实世界中的问题可以先放到数学世界中解决,最后再进入数据世界并且编写程序解决。

这里给出的程序,可以输入多组头和脚的数量。根据输入的头和脚的数量,计算出鸡和兔的数量。

程序如下:

/* 鸡兔同笼,今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何? */#include 
int main(void){ int head, feet, rabbit; printf("Please enter the number of feet and head:\n"); while(scanf("%d%d", &head, &feet) != EOF) { if(head <= 0 || feet <= 0 || head * 2 > feet || head * 4 < feet || (feet - 2 * head) % 2 != 0) printf("Input error!\n"); else { rabbit = (feet - 2 * head) / 2; printf("chicken=%d, rabbit=%d\n", head - rabbit, rabbit); } } return 0;}

程序运行例子:

Please enter the number of feet and head:

35 94
chicken=23, rabbit=12
15 40
chicken=10, rabbit=5
10 41
Input error!
10 18
Input error!
10 20
chicken=10, rabbit=0

转载于:https://www.cnblogs.com/tigerisland/p/7564769.html

你可能感兴趣的文章
最大连续子序列
查看>>
iPhone loadView 和 viewDidLoad的区别
查看>>
Netfilter/iptables的一些新进展
查看>>
程序员的人生规划
查看>>
PHP中抽象类与接口的应用场景
查看>>
ASP.NET中操作SQL数据库
查看>>
Android性能优化
查看>>
Ehcache BigMemory: 摆脱GC困扰
查看>>
C# socket实践 - 简易版FTP(Server & Client)
查看>>
解答《编程之美》1.18问题1:给所有未标识方块标注有地雷概率
查看>>
Matrix
查看>>
九乘九口诀算法
查看>>
js检查页面上有无重复id的代码分享
查看>>
jQuery validate 根据 asp.net MVC的验证提取简单快捷的验证方式(jquery.validate.unobtrusive.js)...
查看>>
返回上一步
查看>>
Linux中断处理(一)
查看>>
冒泡排序
查看>>
WINDOWS 2003系统时间24小时制与12小时显示格式不一致问题与解决
查看>>
你可以做一个更好的Coder为了自己的将来
查看>>
《tortoisegit》 Network error:Connection refused
查看>>