用编程的方法解决“鸡兔同笼”系列问题,其实很简单

您所在的位置:网站首页 鸡兔同笼用python如何写 用编程的方法解决“鸡兔同笼”系列问题,其实很简单

用编程的方法解决“鸡兔同笼”系列问题,其实很简单

#用编程的方法解决“鸡兔同笼”系列问题,其实很简单| 来源: 网络整理| 查看: 265

今有雉兔同笼,

上有三十五头,

下有九十四足,

问雉兔各几何?

第一种解法

#假设 鸡有0只 ,则 兔有35-ji只

ji=0

#用while循环语句来判断符合足94只的情况

while 1:

tu=35-ji

#如果 鸡的脚+兔的脚=94,则输出鸡兔数量的结果,中断循环

if 2*ji+4*tu==94:

print("鸡有:",ji,"只")

print("兔有:",tu,"只")

break

#否则用鸡的数量加1,循环判断符合情况的数字

ji+=1

第二种解法

分析:

根据题意,头的总数为35,我们用变量head来记录头的总数:head=35

而腿的总数为94,我们用变量foot来记录腿的总数:foot=94

我们用变量chicken记录鸡的数量。因为头的总数为35,说明鸡和兔共有35只,所以鸡的数量是0-35之间的某一个数,这里我们用for循环来指挥计算机,自动罗列所有可能出现的情况:

for chicken in range(0,head+1):

然后,我们用变量rabbit记录兔子的数量。因为鸡和兔的总数等于头的数量,所以兔的数量rabbit等于头的总数head减去鸡的数量chicken:

rabbit=head-chicken

鸡有两条腿,兔子有四条腿,所以腿的总数为:

chicken*2+rabbit*4

当腿的总数恰好等于题目的要求94条腿的时候,我们就成功地得到了问题的解。

最后输出答案:

if chicken*2+rabbit*4==foot:

print("鸡",chicken,"兔",rabbit)

'''

完整程序:

head=35

foot=94

for chicken in range(0,head+1):

rabbit=head-chicken

if chicken*2+rabbit*4==foot:

print("鸡有:",chicken,"只")

print("兔有:",rabbit,"只")

万能解题法

那么,为了解决类似所有题目【给出不同数目的头和脚】,我们需要自定义一个函数,这样就做到了“秒”出答案!!!

def jitutonglong(a, b):

x = (4 * a - b) / 2

if a != 0 and (4 * a - b) % (x * 2) == 0:

y = a - x

if x < 0 or y < 0:

print("{}只头{}条腿的情况无解".format(a, b))

else:

print("鸡有{}只,兔有{}只".format(int(x), int(y)))

else:

print("{}只动物{}条腿的情况无解".format(a, b))

a = eval(input("请输入鸡和兔的总数n"))

b = eval(input("请输入鸡和兔的脚数n"))

jitutonglong(a, b)

程序运行如下

让你在数学上头疼的“鸡兔同笼”问题放到编程里就可以轻松解决,你学会了吗?

其实很多简单和日常的小问题,都蕴藏着编程最核心的思想——计算思维,计算思维的养成又能够很好的推动数学思维与能力的提升。

编程是很神奇的语言,大家一起加油吧

返回搜狐,查看更多



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3