欢迎关注本专栏《C++从零基础到信奥赛入门级(CSP-J)》
问题:1249. 搬砖问题
类型:嵌套穷举
题目描述:
36 块砖, 36 人搬。男搬 4 ,女搬 3 ,两个小儿抬一砖。
要求一次全搬完。问需男、女、小儿各若干?
注意:假设男、女、小孩都有,请按照男、女、小孩的顺序输出所有可能的人数分配,每种人数分配方案占 1 行,每个数字空格隔开。
输入:
无。
输出:
所有可能的人数分配方案,按照由小到大输出。
样例:
输入:
输出:
完整代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
//一、分析问题
//已知:36 块砖, 36 人搬。男搬 4 ,女搬 3 ,两个小儿抬一砖。
//未知:要求一次全搬完。问需男、女、小儿各若干?输出所有可能的人数分配。
//关系: 男、女、小孩都有,按照男、女、小孩的顺序由小到大输出。
//二、定义变量(已知、未知、关系)
int m=1,w,c;
//三、输入已知
//四、根据关系计算
for(;m<=(36-3-1)/4;m++){
for(w=1;w<=(36-m*4-1)/3;w++){
c=(36-m*4-w*3)*2;
//五、输出未知
if(m+w+c==36){
cout<<m<<" "<<w<<" "<<c<<"\n";
}
}
}
return 0;
}