# 这是一个解决鸡兔同笼问题的程序
创新互联是一家成都网站制作、成都网站设计,提供网页设计,网站设计,网站制作,建网站,按需网站开发,网站开发公司,从2013年开始是互联行业建设者,服务者。以提升客户品牌价值为核心业务,全程参与项目的网站策划设计制作,前端开发,后台程序制作以及后期项目运营并提出专业建议和思路。
import random
chicken = random.randint(1, 20)
rabbit = random.randint(1, 20)
A = 0
B = 0
heads = rabbit + chicken
feet = rabbit * 4 + chicken * 2
print("现在鸡兔同笼, 已知鸡兔一共有{}个头,一共有{}只脚,问鸡兔各有多少只?一共三次回答的机会".format(heads, feet))
# 一共有三次机会
for i in range(3):
A = input("请你输入 鸡 有多少只,并回车确认:")
B = input("请你输入 兔 有多少只,并回车确认:")
if int(A) == chicken and int(B) == rabbit:
print("恭喜你答对了!")
break
else:
print("很遗憾你答错了,请重新回答, 你还有{}次机会".format(2 - i))
if i == 2:
print("很遗憾, 你已经用完了所有机会.正确的是:鸡{}只,兔有{}只".format(chicken, rabbit))
def demo(m, n):
for ji in range(1, m + 1):
tu = m - ji
if ji * 2 + tu * 4 == n:
return (ji, tu)
else:
return (-1, -1)
m, n = input('输入鸡兔数,脚数:').split(',')
if demo(int(m), int(n)) == (-1, -1):
print('输入数据出错!')
else:
print('%d只鸡,%d只兔。' % demo(int(m), int(n)))
在循环内对鸡的数量进行取值,取值范围[0, head]:鸡的数量每取一个值,便可以知道相应兔的数量,进而计算出脚的数量是否与题目中一致。鸡的数量肯定在范围内,所以这个循环进行完后一定可以得到答案。
您好,前面已经回答过您的问题了:这里solve是您前面已经定义的函数,用来计算猪和兔子的数量。函数一般都用圆括号而不是方括号,所以您应该这样写:pigs, chickens = solve(legs, heads) 记住在调用函数的时候都是圆括号,只有在用列表list的时候才是方括号。这也是为什么你的pig是红色的。您这一个程序有点像MIT Open Course第四节的例子,您可以参考一下他们的讲义。如果您没有定义solve这个函数的话,可以看以下程序:
def solve(numHeads, numLegs):
test = False
for numChickens in range(0, numHeads + 1):
numPigs = numHeads - numChickens
if 2 * numChickens + 4 * numPigs == numLegs:
test = True
return numPigs, numChickens
if not test:
return None, None