python解决鸡兔同笼
鸡兔同笼
【问题描述】
利用 input()语句先后输入两个正整数,分别代表鸡兔的头和脚的总数。其 中,兔有四只脚,鸡有两只脚,都只有一个头。 请编写 Python 代码计算出兔和鸡的数量,输出结果形如“Chicken=15 Rabbit=5”,如没有解则输出“No solution!”。
【输入描述】 分两次输入,第一次输入头的总数,回车后输入脚的总数。 特别提示:常规程序中,输入时好习惯是有提示。考试时由于系统限定,输 入时所有 input()函数不可有提示信息。
【输出描述】 如果有解,则输出鸡和兔分别数量,形如“Chicken=15 Rabbit=5”Rabbit 之前有 1 个英文半角空格,C 和 R 都为大写。 如没有解则输出“No solution!”,No 之后有 1 个英文半角空格,solution 之后有英文半角叹号。 特别提示:注意字母大小写以及空格、叹号等匹配一致。
【样例输入 1】
20
50
【样例输出 1】
Chicken=15 Rabbit=5
【样例输入 2】
20
30
【样例输出 2】
No solution
可以使用枚举法来解决“鸡兔同笼”问题。通过枚举鸡的数量,计算对应的兔的数量,然后判断脚的总数是否匹配。以下是用枚举法实现的代码:
# 输入头的总数
heads = int(input())
# 输入脚的总数
legs = int(input())
# 初始化解的标志
solution_found = False
# 枚举鸡的数量,从 0 到头的总数
for chickens in range(heads + 1):
rabbits = heads - chickens # 计算兔的数量
total_legs = 2 * chickens + 4 * rabbits # 计算脚的总数
# 检查脚的总数是否匹配
if total_legs == legs:
print(f"Chicken={chickens} Rabbit={rabbits}")
solution_found = True
break # 找到解后可以退出循环
# 如果没有找到解,输出“No solution!”
if not solution_found:
print("No solution!")使用
input()读取头数和脚数。使用一个循环枚举所有可能的鸡的数量,从 0 到头的总数。
根据鸡的数量计算兔的数量,并计算对应的脚的总数。
如果脚的总数与输入的脚数匹配,输出鸡和兔的数量,并设置标志
solution_found为True,然后退出循环。如果循环结束后未找到解,输出“No solution!”。
方法二:
可以使用 Python 编写程序来解决“鸡兔同笼”问题。根据输入的头数和脚数,可以通过简单的数学公式来计算鸡和兔的数量。以下是实现的代码:
# 输入头的总数
heads = int(input())
# 输入脚的总数
legs = int(input())
# 设鸡的数量为 x,兔的数量为 y
# 由题意可得两个方程:
# 1. x + y = heads (头的总数)
# 2. 2x + 4y = legs (脚的总数)
# 可以将方程变形为:
# x = heads - y
# 代入第二个方程:
# 2(heads - y) + 4y = legs
# 2heads + 2y = legs
# 2y = legs - 2heads
# y = (legs - 2heads) / 2
# 计算兔的数量
rabbits = (legs - 2 * heads) / 2
# 计算鸡的数量
chickens = heads - rabbits
# 检查是否为非负整数解
if rabbits >= 0 and chickens >= 0 and rabbits.is_integer() and chickens.is_integer():
print(f"Chicken={int(chickens)} Rabbit={int(rabbits)}")
else:
print("No solution!")使用
input()读取头数和脚数。根据方程组推导出兔子和鸡的数量。
检查计算结果是否为非负整数,如果是,则输出鸡和兔的数量;如果没有解,则输出“No solution!”。

- 上一篇:python删除列表中字符串
- 下一篇:c++解决鸡兔同笼问题
