穷举法
“穷举法”也称“枚举法”
,即将可能出现的各种情况一一测试,判断是否满足条件,采用
循环语句可方便实现。
百元买鸡问题。假定小鸡每只
5
角,公鸡每只
2
元,母鸡每只
5
元。现在有
100
块钱,要求
买
100
只鸡,编程列出所有可能的购鸡方案。
分析:设母鸡、公鸡、小鸡分别为
x
、
y
、
z
只,根据题目要求列出方程为:
其中包括
3
个未知数,
2
个方程,此题有若干个解。可用如下
两种方法实现。
方法一:用三重循环来解决。
#include
”
iostream.h
”
#include
”
iomanip.h
”
void main()
{
Int
x,y,z;
Long k(0);
Cout <<
”
x
y
z
”
<
For(x=0;x<100;x++)
For(y=0;y<100;y++)
For(z=0;z<100;z++)
{
K++;
If(((3*x+2*y+0.5z)==100)&&((x+y+z==100)))
Cout<
}
Cout<<
”
方法一内执行了
”
<
”
次
”
<
}
方法二:用两重循环来解决,相应程序段如下:
Cout <<
”
x
y
z
”
<
For(x=0;x<=33;x++)
For(y=0;y<=50;y++)
{
K++;
z=100-x-y;
if((3*x+2*y+0.5z)==100)
cout<
}
Cout<<
”
方法二内循环执行了
”
<
”
次
”
<