鸡兔同笼
2015-08-30 15:57
232 查看
原题:今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?
解题思路:
假如砍去每只鸡,每只兔一半的脚,那鸡兔的总脚数变成了94/2=47;
如果笼子里有一只兔子,那么脚的数量比头多一个。因此,兔的数量就是47-35=12,则鸡的数量就是35-12=23。
上述方法叫做化归法
下面我们用枚举法来写程序代码;
设鸡有i只,兔有j只
可是这样一来循环的次数就有点多了,下面我们改进效率
两只鸡和一只兔的叫数量是相等的,所以鸡的数量不超过三分之二,即i<25,j<13;
第二次循环可以改为从35-i开始
解题思路:
假如砍去每只鸡,每只兔一半的脚,那鸡兔的总脚数变成了94/2=47;
如果笼子里有一只兔子,那么脚的数量比头多一个。因此,兔的数量就是47-35=12,则鸡的数量就是35-12=23。
上述方法叫做化归法
下面我们用枚举法来写程序代码;
设鸡有i只,兔有j只
#include <stdio.h> int main() { int i,j; for(i=1;i<35;i++) { for(j=1;j<35;j++) { if((i+j==35)&&(2*i+4*j==94)) { printf("鸡有%d只,兔有%d只\n",i,j); } } } return 0; }
可是这样一来循环的次数就有点多了,下面我们改进效率
两只鸡和一只兔的叫数量是相等的,所以鸡的数量不超过三分之二,即i<25,j<13;
第二次循环可以改为从35-i开始
#include <stdio.h> int main() { int i,j; for(i=1;i<25;i++) { for(j=35-i;j<13;j++) { if((i+j==35)&&(2*i+4*j==94)) { printf("鸡有%d只,兔有%d只\n",i,j); } } } return 0; }
相关文章推荐
- iOS 状态栏(UIStatusBar)的相关设置
- [HDOJ1754]I Hate It
- 插入排序
- PhantomJS简介
- 面试题5:从尾到头打印链表
- 关于js的Array.prototype.slice.call
- 多线程与RunLoop
- java输入输出流
- Recommending music on Spotify with deep learning 采用深度学习算法为Spotify做基于内容的音乐推荐
- 面试题29.数组中出现次数超过一半的数字
- 如何使用贝瑟尔曲线切的圆角 Button
- AddressBook/AddressBookUI
- 了解FTP
- java实现map和object互转的三种方法
- NGUI中Panel渲染顺序记录
- hihocoder 1164 随机斐波那契 (期望dp)
- Swap Nodes in Pairs
- Android(java)学习笔记203:网页源码查看器(Handler消息机制)
- Linux命令汇总之用户和组的相关命令
- The Java EE 6 Tutorial The mood Example Application