鸡兔共49只,一共有100条腿,问鸡和兔各有多少只,请编写程序输出结果。若只知道有n条腿,鸡兔数量可以有几种结果。(n为输入量,程序能够选择是否列出结果)C语言
时间: 2024-10-12 07:08:58 浏览: 26
这是一个典型的线性方程组问题,我们可以使用双重循环来遍历所有可能的鸡和兔子的数量组合,并检查它们的脚数总和是否等于给定的总数。以下是使用C语言的解决方案:
```c
#include <stdio.h>
void find_combinations(int legs_total, int max_chickens) {
for (int chickens = 0; chickens <= max_chickens; chickens++) {
int rabbits = (legs_total - 2 * chickens) / 2; // 鸭子数量 = 总腿数 - 鸡腿数 / 2
if (rabbits >= 0 && rabbits * 4 + chickens * 2 == legs_total) {
printf("鸡有 %d 只,兔有 %d 只\n", chickens, rabbits);
// 判断是否需要列出所有结果
if (!list_results) continue;
// ...在这里添加代码来显示所有可能的结果...
}
}
}
int main() {
int n_legs; // 输入的腿数
scanf("%d", &n_legs);
// 最大可能是49只动物,每只有2只脚,所以最多198只脚
int max_chickens = 49;
find_combinations(n_legs, max_chickens);
return 0;
}
// 定义一个标志变量list_results来控制是否列出所有结果
bool list_results = true; // 默认列出所有结果,如果需要隐藏,将其设为false
阅读全文