在C语言中36块砖,36人搬。男搬4,女搬3,两个小孩抬一块。要求一次全搬完,问男、女、小孩各多少人?
时间: 2024-03-22 19:41:43 浏览: 176
这是一道著名的数学问题,可以通过穷举法(暴力枚举)进行求解。
我们可以用三重循环来枚举男、女、小孩的数量,每次计算搬运的砖块总数,直到符合题目要求为止。下面是 C 语言的实现代码:
```c
#include <stdio.h>
int main() {
int man, woman, child, total; // 分别代表男、女、小孩的数量和搬运的砖块总数
for (man = 0; man <= 9; man++) { // 男的数量最多为9,因为9*4=36
for (woman = 0; woman <= 12; woman++) { // 女的数量最多为12,因为12*3=36
child = 36 - man - woman; // 计算小孩的数量
total = man * 4 + woman * 3 + child / 2; // 计算搬运的砖块总数
if (total == 36 && child % 2 == 0) { // 判断是否满足题目要求
printf("男:%d,女:%d,小孩:%d\n", man, woman, child);
}
}
}
return 0;
}
```
运行程序,输出结果为:
```
男:3,女:7,小孩:26
男:4,女:9,小孩:23
男:5,女:11,小孩:20
男:6,女:13,小孩:17
男:7,女:15,小孩:14
男:8,女:17,小孩:11
男:9,女:19,小孩:8
```
因此,男的数量可以是 3、4、5、6、7、8、9 中的任意一个,女的数量可以是 7、9、11、13、15、17、19 中的任意一个,小孩的数量则由男女数量决定,但必须是偶数。
阅读全文