Python解决鸡兔同笼问题的方法
程序员文章站
2022-06-14 12:16:22
本文实例讲述了python解决鸡兔同笼问题的方法,分享给大家供大家参考。具体分析如下:
问题描述
一个笼子里面关了鸡和兔子(鸡有 2 只脚,兔子有 4 只脚,没有例外)...
本文实例讲述了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)]
for a,b in l:
print a,b
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)]
for a,b in l:
print a,b
希望本文所述对大家的python程序设计有所帮助。
上一篇: python执行精确的小数计算方法
下一篇: web.py获取上传文件名的正确方法
推荐阅读
-
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
-
IE浏览器在post提交时中文乱码的解决方法
-
Hive与Oracle之间利用Sqoop进行数据的导入导出时遇到的问题及解决方法
-
Oracle回滚段的概念,用法和规划及问题的解决
-
indexerror怎么解决(python中函数参数传递的三种方式)
-
jsp中 ajax的get请求的中文乱码问题的解决方法
-
frameset布局时frame中src路径的页面没有加载的解决方法
-
Python scrapy 常见问题及解决 【遇到的坑】
-
CentOS 7中升级MySQL 5.7.23的坑与解决方法
-
js input输入百分号保存数据库失败的解决方法