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:
如果觉得《关于鸡兔同笼的python程序_python解决鸡兔同笼问题的方法》对你有帮助,请点赞、收藏,并留下你的观点哦!