算法原理:
鸡兔同笼问题是一个经典的数学问题。假设鸡有2只脚,兔有4只脚。
设鸡的数量为x,兔的数量为y,则:
x + y = 头的总数
2x + 4y = 脚的总数
通过解这个方程组,可以得到:
y = (脚的总数 - 2 × 头的总数) / 2
x = 头的总数 - y
【程序代码】
#include <iostream> // 包含输入输出流头文件
using namespace std; // 使用标准命名空间
int main() // 主函数,程序入口
{
int heads, legs; // 定义变量:头的总数,腿的总数
cout << "请输入头的总数和腿的总数(用空格分隔): ";
cin >> heads >> legs; // 读取输入的头数和腿数
// 计算兔子的数量:rabbits = (legs - 2 * heads) / 2
// 计算鸡的数量:chickens = heads - rabbits
int rabbits = (legs - 2 * heads) / 2; // 每只兔子比鸡多2条腿
int chickens = heads - rabbits; // 总头数减去兔子数得到鸡数
// 检查解是否合理(非负整数且满足条件)
if (rabbits >= 0 && chickens >= 0 &&
(4 * rabbits + 2 * chickens == legs) &&
(rabbits + chickens == heads))
{
cout << "鸡的数量: " << chickens << endl; // 输出鸡的数量
cout << "兔的数量: " << rabbits << endl; // 输出兔的数量
}
else
{
cout << "无解!输入数据不合理。" << endl; // 输出无解信息
}
return 0; // 程序正常结束
}
277

被折叠的 条评论
为什么被折叠?



