首页 > 编程语言 >Python之鸡兔同笼

Python之鸡兔同笼

时间:2022-10-12 20:06:17浏览次数:42  
标签:head 鸡兔同笼 Python 兔子 answer input 脚数 输入

1.问题的描述

大约在1500年前,《孙子算经》中就记载了这个有趣的问题:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?”意思是,有若干只鸡和兔子关在同一个笼子里,从上面数有35个头,从下面数有94只脚,问:笼子中有多少只鸡?多少只兔子?

我们今天用Python解决鸡兔同笼问题:请用户输入头数和脚数,判断有多少只鸡,多少只兔子。

2.解题思路

第一步: 用input函数使用户输入头的个数和脚的个数

第二步: 判断鸡和兔子的数量,需要把握住关键条件“鸡+兔=头数;2鸡+4兔=脚数”,用两层for循环遍历鸡和兔的数量,计算结果

第三步: 输出正确结果

3.解题方法

方法一

head = int(input("请输入头数:"))                                                                
foot = int(input("请输入脚数:"))
x = 0 # 鸡
y = 0 # 兔子
answer = False

for x in range(head+1):
for y in range(head+1):
if x + y == head and 2 * x + 4 * y == foot:
answer = True
break
if answer:
break

if answer:
print("鸡有", x, "只;兔子有", y, "只")
else:
print("此题无解,请重新输入")

第1行: 定义变量head,用input函数使用户输入头数,int函数将其转化为整型

第2行: 同理,定义变量foot,用input函数使用户输入脚数,int函数将其转化为整型

第3-4行: 定义变量x,y,分别表示鸡和兔子的数量,初始赋值均为0

第5行: 定义变量answer,这个问题有没有解,暂时不清楚,所以初始赋值先为False

第7行: 用for循环遍历0至head+1的整数,并为x赋值

第8行: 在for循环的基础上嵌套一个for循环,同样遍历0至head+1的整数,并为y赋值

第9-11行: 用if语句判断,如果两动物的数量和等于head,脚之和等于foot,则answer为True,并用break退出第一重循环

第12-13行: 继续用if语句判断变量x的循环,如果答案为真,则退出循环

第15-18行: 用if...else语句判断,如果答案为真,则用print函数打印鸡和兔的数量,否则打印此题无解

方法二

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

标签:head,鸡兔同笼,Python,兔子,answer,input,脚数,输入
From: https://blog.51cto.com/u_15641375/5751434

相关文章

  • Python基础13
    今日内容概要多层语法糖有参装饰器装饰器修复技术递归函数今日内容详细多层语法糖'''多层语法糖加载顺序由下往上每次执行之后如果上面还有语法糖则直接将返......
  • Python解决千年虫问题
    #避免千年虫(日期bug)问题千年虫:部分计算机程序使用年份后两位作为记录年份,当日期跳转到00时候,默认会解析为1900,造成系统紊乱lst=[45,89,1998,00,75,33,1968,37,1958,90]l......
  • Python生成10个八位随机密码
    #生成10个八位随机密码importrandomlst1=[chr(i)foriinrange(97,123)]#生成26为字母列表lst2=[iforiinrange(0,10)]#生成0-9数字列表result=lst1+lst2#......
  • python爬虫博客
    importrequestsimportjsonfrompprintimportpprintfrombs4importBeautifulSoupurl="https://www.cnblogs.com/AggSite/AggSitePostList"headers={#"content-ty......
  • [python] JSON
    [python]JSONJSON(JavaScriptObjectNotation,JS对象标记)是一种轻量级的数据交换格式。JSON的数据格式其实就是python里面的字典格式,里面可以包含方括号括起来的数......
  • json python
    jsonpython阅读目录序列化模块json模块回到顶部序列化模块1,定义序列化:就是将一种数据结构(如字典,裂变)等转换成一个特殊的序列(字符串或者bytes)的过程就叫序列化序列化......
  • python 装饰器
    参考链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1017451662295584https://blog.csdn.net/zhh763984017/article/details/120072425......
  • python第十三课---
    昨日内容回顾global与nonlocal关键字global 用于局部名称空间修改全局名称空间中的名字绑定关系nonlocal 用于局部名称空间修改外层局部名称空间中的名字绑定关系......
  • python基础--简单数据类型预览
    为了适应更多的使用场景,将数据划分为多种类型,每种类型都有各自的特点和使用场景,帮助计算机高效的处理和展示数据。(比如数字用于数学运算、字符串用于信息传递、页面文字展......
  • Python 为什么能支持任意的真值判断?
    Python在涉及​​真值判断​​​(​​TruthValueTesting​​)时,语法很简便。比如,在判断某个对象是否不为None时,或者判断容器对象是否不为空时,并不需要显示地写出判断条件......