用Python求多笼鸡兔同笼

如题所述

第1个回答  2020-05-30

# 脚为foot, 头为head

def chicken_rabbit(head, foot):

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

y = head-x

if x*2+y*4==foot:

print("%d只鸡, %d只兔"%(x,y))

第2个回答  2020-08-02

1楼属于暴力枚举法,太慢了

下面使用方程法
方程的思想(有点残忍)是:

鸡,两条腿;兔子,四条腿。

假设有25只动物,64条腿

我们把每只动物都砍掉两条腿

那么,剩下的腿的数量=原来的-动物数量*2=64-25*2=14

鸡,砍掉两条腿就不剩下了;兔子还剩2条腿;因此笼子里还剩下的都是兔子腿。

兔子数量=剩下腿的数量÷2=14/2=7

def chicken_rabbit(head,foot):

    rest = foot - head*2

    rabbit = rest / 2

    chicken = head - rabbit

    print("鸡{}只,兔{}只".format(chicken,rabbit))