Python解决鸡兔同笼问题的方法
本文实例讲述了Python解决鸡兔同笼问题的方法,分享给大家供大家参考。具体分析如下:
问题描述
一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物
输入数据
第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(a<32768)。
输出要求
n行,每行输出对应一个输入。输出是两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用空格分开。如果没有满足要求的情况出现,则输出2个0。
输入样例
2
3
20
输出样例
00
510
解题思路:
首先考虑特殊情况,当a为奇数时,结果都为0
其次考虑偶数:
假设鸡i只,兔j只,那么a=2*i+4*j
我们要求i+j的最小和最大值
易知i+j=(a-2j)/2当j越大i+j越小当j越小i+j越大
当然我们也可以简单的用权重值来思考,而不需要去想具体的计算过程
python实现如下:
n=input() l=list() forkinrange(n): inputNum=input() #odd ifinputNum%2!=0: min=max=0 else: #even #min j=inputNum/4 i=inputNum%4/2 min=i+j #max max=inputNum/2 l+=[(min,max)] fora,binl: printa,b
希望本文所述对大家的Python程序设计有所帮助。