1、题目:
现有36块砖,由男人、女人、小孩共36个人搬。已知:男人一次共搬4块、女人一次搬3块,两个小孩抬一块,要求一次性刚好搬完。问男人、女人、小孩各多少人?请编程解决改问题。
2、程序分析:
- 4*男人+3*女人+小孩/2=36。男人+女人+小孩=36。
- 可以用循环嵌套得到最终的人数,
3、知识点:
- 循环嵌套
- 逻辑与(&&)
4、代码展示:
#include<stdio.h>
void main() {
int man, woman, child;
for (man = 0; man < 9; man++) { //36块砖,都是男人搬,只要9个男人就能一次搬完
for (woman = 0; woman < 12; woman++) { //36块砖,都是女人搬,只要12个女人就能一次搬完
child = 36 - man - woman;
if ((man * 4 + woman * 3 + child / 2 == 36) && child % 2 == 0) { //总砖块是36,小孩是两个才能抬一块砖,所以小孩是双数
printf("男人:%d\n", man);
printf("女人:%d\n", woman);
printf("小孩:%d", child);
}
}
}
}
感谢用户
2301_81288218的提醒,对代码部分进行修改。(2025年1月4日)(child%2!=0改成child%2==0,太懒了,图片就不改了)修改后运行出来结果如下:
验证:3*4 + 3*3 + 30/2 = 36