鸡兔同笼python程序怎么写_Python解决鸡兔同笼问题的方法
本文实例讲述了Python解决鸡兔同笼问题的方法,分享给大家供大家参考。具体分析如下:问题描述一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物输入数据第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a (a < 32768)。输出要求n行,每行输出对应一个输入。输出是两个正
本文实例讲述了
Python
解决鸡兔同笼问题的方法,分享给大家供大家参考。具体分析
如下:
问题描述
一个笼子里面关了鸡和兔子
(
鸡有
2
只脚
,
兔子有
4
只脚
,
没有例外
)
。已经知道了笼
子
里面脚的总数
a,
问笼子里面至少有多少只动物
,
至多有多少只动物
输入数据
第
1
行是测试数据的组数
n,
后面跟着
n
行输入。
每组测试数据占
1
行
,
包括一个正整
数
a (a < 32768)
。
输出要求
n
行
,
每行输出对应一个输入。输出是两个正整数
,
第一个是最少的动物数
,
第二个是
最
多的动物数
,
两个正整数用空格分开。如果没有满足要求的情况出现
,
则输出
2
个
0
。
输入样例
2
3
20
输出样例
0 0
5 10
解题思路:
首先考虑特殊情况,当
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()
for k in range(n):
inputNum=input()
#odd
if inputNum%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)]
更多推荐
所有评论(0)