穷举法:口袋中有红、黄、蓝、白、黑五种颜色的球若干个,每次从口袋中取出3个不同颜色的球,问有多少种取法。
分析:用枚举类型表示球,i、j、k表示取出的球,逐个检验每一种可能的组合
#include <iostream.h>
int main ()
{
enum color{red,yellow,blue,white,black};
color pri;
int n,loop,i,j,k;
char c;
n=0;
for(i=red;i<black,i++)
for(j=red;j<black;j++)
if(i!=j)
{
for(k=red;k<black;k++)
if((k!=i)&&(k!=j))
{
n=n+1;
cout.width(4);//控制输出4位
cout<<n;
for(loop=1;loop<=3;loop++)
{
switch(loop)
{
case1:
pri=(enum color)i;
break;
case2:
pri=(enum color)j;
break;
case3:
pri=(enum color)k;
break;
default:break;
}
switch(tri)
{
case red:
cout<<" red";
break;
case yellow:
cout<<" yellow";
break;
case blue:
cout<<" blue";
break;
case white:
cout<<" white";
break;
case black:
cout<<" black";
break;
default:break;
}
}
cout<<endl;
}
}
cout<<"total:"<<n<<endl;
}