c语言程序:有36 块砖,36 人搬。男人搬4块,女人搬3块,两个小孩抬一砖。要求一次全搬完。问需男人、女人、小孩各若干?(穷举法)。
时间: 2024-06-03 12:06:58 浏览: 137
#include <stdio.h>
int main() {
int man, woman, child; // 男人、女人、小孩的数量
for(man=0; man<=9; man++) { // 最多9个男人,因为4*9=36
for(woman=0; woman<=12; woman++) { // 最多12个女人,因为3*12=36
child = 36 - man - woman; // 剩下的砖数由小孩抬
if(man*4 + woman*3 + child/2 == 36) { // 判断是否正好搬完36块砖
printf("男人:%d 个,女人:%d 个,小孩:%d 个\n", man, woman, child);
}
}
}
return 0;
}
相关问题
用c语言编写程序,求解古典算数问题——搬砖:已知要搬 36 块砖, 36 人搬,男一人搬 4 块砖,女一人搬 3 块砖,两个小孩合搬一块砖,要求一次搬完,请问男、女、小孩各需多少人?
根据题目中的要求,36人搬完36块砖,所以男、女、小孩的总人数应该为36人。设男人数为x,女人数为y,小孩数为z,则有以下方程组:
x + y + z = 36 (总人数为36)
4x + 3y + 0.5z = 36 (总共搬了36块砖)
由于小孩需要两个人合搬一块砖,所以将小孩的搬砖数量除以2加入总共搬的砖块数。解方程可得:
x = 6
y = 8
z = 22
因此男人需要6人,女人需要8人,小孩需要22人。
中用c语言写如下程序:国古典算术问题)某工地需要搬运砖块,已知男人一人搬3块,女人一人搬2块,小孩两人搬一块。问用45人正好搬45块砖,有多少种搬法?
以下是用C语言实现的程序:
```c
#include <stdio.h>
int main() {
int man, woman, child, count = 0;
for(man = 0; man <= 15; man++) { // 最多15个男人
for(woman = 0; woman <= 22; woman++) { // 最多22个女人
child = 45 - man - woman; // 剩下的是小孩的数量
if(child % 2 == 0 && man * 3 + woman * 2 + child / 2 == 45) {
printf("方案 %d: %d 个男人,%d 个女人,%d 个小孩\n", ++count, man, woman, child);
}
}
}
printf("总共有 %d 种搬法\n", count);
return 0;
}
```
程序中使用了两个循环,分别枚举男人和女人的数量,然后计算出小孩的数量。如果小孩的数量是偶数,并且总共搬运的砖块数量刚好是45,那么就说明这是一种符合要求的搬运方案,打印出来并且计数器加1。最后输出总共的搬运方案数量。
阅读全文