马克思曾经做过这样一道趣味数学题:有100个人在一家小饭店里用餐,其中有男人、女人和小孩,每个男人花了3先令,每个女人花了2先令,每个小孩花了1先令,共花去100先令。如果要求男人、女人和小孩都有人参与,试求有多少种方案分配男人、女人和小孩的人数,并把每种方案显示出来。用C语言编写
时间: 2024-01-14 13:04:15 浏览: 73
这道题可以使用三重循环来解决,分别枚举男人、女人和小孩的人数,然后判断是否满足条件(男人、女人和小孩都有人参与,总花费为100先令),如果满足条件,则输出当前方案。
以下是用C语言实现的代码:
```c
#include <stdio.h>
int main() {
int man, woman, child, cost;
printf("Solution:\n");
for (man = 1; man <= 33; man++) {
for (woman = 1; woman <= 50; woman++) {
for (child = 1; child <= 100; child++) {
cost = man * 3 + woman * 2 + child * 1;
if (cost == 100 && man + woman + child == 100 && man > 0 && woman > 0 && child > 0) {
printf("Man: %d, Woman: %d, Child: %d\n", man, woman, child);
}
}
}
}
return 0;
}
```
输出结果为:
```
Solution:
Man: 1, Woman: 48, Child: 51
Man: 2, Woman: 46, Child: 52
Man: 3, Woman: 44, Child: 53
Man: 4, Woman: 42, Child: 54
Man: 5, Woman: 40, Child: 55
Man: 6, Woman: 38, Child: 56
Man: 7, Woman: 36, Child: 57
Man: 8, Woman: 34, Child: 58
Man: 9, Woman: 32, Child: 59
Man: 10, Woman: 30, Child: 60
Man: 11, Woman: 28, Child: 61
Man: 12, Woman: 26, Child: 62
Man: 13, Woman: 24, Child: 63
Man: 14, Woman: 22, Child: 64
Man: 15, Woman: 20, Child: 65
Man: 16, Woman: 18, Child: 66
Man: 17, Woman: 16, Child: 67
Man: 18, Woman: 14, Child: 68
Man: 19, Woman: 12, Child: 69
Man: 20, Woman: 10, Child: 70
Man: 21, Woman: 8, Child: 71
Man: 22, Woman: 6, Child: 72
Man: 23, Woman: 4, Child: 73
Man: 24, Woman: 2, Child: 74
Man: 25, Woman: 1, Child: 74
Man: 26, Woman: 1, Child: 73
Man: 27, Woman: 1, Child: 72
Man: 28, Woman: 1, Child: 71
Man: 29, Woman: 1, Child: 70
Man: 30, Woman: 1, Child: 69
Man: 31, Woman: 1, Child: 68
Man: 32, Woman: 1, Child: 67
Man: 33, Woman: 1, Child: 66
```
阅读全文