Problem I. S06-14 穷举法(穷举简单这一类题的解法)
马克思手稿中有这样一道趣味数学题:男人、女人和小孩总计30个人,在一家饭店里吃饭,共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,请用穷举法编程计算男人、女人和小孩各有几人。
输入
输出
穷举法每一行分别按顺序输出男人、女人和小孩的人数
样例
标准输入复制文本 |
标准输出复制文本 |
0 20 10 1 18 11 2 16 12 3 14 13 4 12 14 5 10 15 6 8 16 7 6 17 8 4 18 9 2 19 10 0 20 |
解题思路:
1、先判断男人、女人、孩子最多能有多少人(穷举的前提条件)
2、符合穷举答案的条件
3、输出的格式化
#include <iostream>
using namespace std;
int main()
{
for(int a=0;a<17;a++)
{
for(int b=0; b<=25;b++)
{
for(int c=0;c<=30;c++)
{
if(a*3+b*2+c==50&&a+b+c==30) //符合穷举的条件
{
printf(" %2d %2d %2d\n",a,b,c);//注意输出的格式!
}
}
}
}
return 0;
}