发布网友 发布时间:2022-04-25 15:13
共2个回答
懂视网 时间:2022-04-19 02:53
本文实例讲述了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实现如下:
代码如下:
希望本文所述对大家的Python程序设计有所帮助。
热心网友 时间:2022-04-19 00:01
# 这是一个解决鸡兔同笼问题的程序
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))