7-1 鸡兔同笼(高教社,《Python编程基础及应用》习题3-7) 分数 3 作者 海洋饼干叔叔 单位 重庆大学 鸡兔同笼问题,从键盘读取脚数,头数,输出鸡数和兔数。 输入格式: 脚数 头数 输出格式: 鸡数 兔数 输入样例: 在这里给出一组输入。例如: 94 35 输出样例: 23 12
时间: 2025-03-31 14:12:17 浏览: 42
### 鸡兔同笼问题的Python实现
鸡兔同笼问题是经典的数学问题之一,可以通过编程方法高效求解。以下是基于Python的一种解决方案:
#### 方法描述
通过输入总头数 `heads` 和总脚数 `feet`,可以利用简单的代数方程组推导出鸡和兔子的数量。假设鸡的数量为 `chickens`,兔子的数量为 `rabbits`,则有以下两个条件成立:
1. 总头数:`chickens + rabbits = heads`
2. 总脚数:`2 * chickens + 4 * rabbits = feet`
由此可得两种可能的情况:
- 如果 `(4 * heads - feet)` 能被 2 整除,则鸡的数量为 `(4 * heads - feet) / 2`。
- 兔子数量可通过 `rabbits = heads - chickens` 计算得出。
如果上述条件不满足(即无法整除或者结果不符合逻辑),则说明该问题无解。
#### Python 实现代码
下面是一个完整的 Python 程序用于解决此问题:
```python
def solve_chicken_rabbit(heads, feet):
# 判断是否有解
if feet < 2 * heads or feet > 4 * heads or (feet - 2 * heads) % 2 != 0:
return None
# 计算鸡和兔子的数量
chickens = (4 * heads - feet) // 2
rabbits = heads - chickens
return chickens, rabbits
# 用户输入部分
try:
heads = int(input("请输入鸡和兔的总头数:"))
feet = int(input("请输入鸡和兔的总脚数:"))
result = solve_chicken_rabbit(heads, feet)
if result:
chickens, rabbits = result
print(f"鸡的数量:{chickens}, 兔子的数量:{rabbits}")
else:
print("无解")
except ValueError:
print("输入错误,请确保输入的是有效的整数!")
```
#### 解释
1. 函数 `solve_chicken_rabbit` 接收参数 `heads` 和 `feet` 并返回鸡和兔子的数量[^3]。
2. 使用条件语句验证是否存在合法解法。如果不存在合法解法则返回 `None` 表示无解[^2]。
3. 主程序负责接收用户输入并调用函数处理数据,最后打印结果或提示无解情况[^5]。
---
#### 注意事项
为了保证程序运行正常,需注意以下几点:
- 输入的数据应为正整数。
- 当前算法仅适用于标准情况下(每只动物都有正常的头部和腿部数目)。如果有特殊情况需要扩展模型。
---
阅读全文
相关推荐


















