穷举法:
是将问题中的所有可能答案一一列举,然后根据条件判断此答案是否合适,合适就保留,不合适就丢弃。
例题:
某工地需要搬运砖块,已知男人一人搬3块,女人一人搬2块,小孩两人搬一块。
问用45人正好搬45块砖,如何搬?
输出样式如下:
man:0,woman:15,children:30
man:3,woman:10,children:32
......
代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
int a,b,c;
for(a=0;a<15;a++)
{
for(b=0;b<=22;b++)
{
for(c=0;c<=44;c+=2)
{
if(a+b+c==45&&a*3+b*2+c/2==45)
{
printf("man:%d,woman:%d,children:%d\n",a,b,c);
}
}
}
}
return 0;
}
代码简化:
#include<stdio.h>
#include<math.h>
int main()
{
int a,b,c;
for(a=0;a<15;a++)
{
for(b=0;b<=22;b++)
{
c=45-a-b;
if(c%2==0&&a*3+b*2+c/2==45)
{
printf("man:%d,woman:%d,children:%d\n",a,b,c);
}
}
}
return 0;
}