问题描述:
口袋中有红、黄、蓝、白、黑五种颜色的球若干个。每次从口袋中取出3个不同颜色的球,请问有多少种取法?
分析:
首先取第一个球,再取第二个球。判断前两个球是否相同,若相同则按顺序再取第二个球,若不相同开始取第三个球。判断第三个球和前两个球是否相同,若相同则按顺序再取第三个球,直到三个球都不相同为止。记录下三个球此时的数字,在枚举变量中找到对应颜色的球并输出。
代码:
#include <iostream>
using namespace std;
enum Color{red,yellow,blue,white,black};
int main(){
int i,j,k,l,num=0;
Color col;
for(i=red;i<=black;i++){
for(j=red;j<=black;j++){
if(i!=j){
for(k=red;k<=black;k++){
if(i!=k&&j!=k){
cout<<"\n";
num+=1;
cout<<num<<"\t";
for(l=1;l<=3;l++){
switch(l){
case 1:col=Color(i); break;
case 2:col=Color(j); break;
case 3:col=Color(k); break;
default:break;
}
switch(col){
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;
}
}
}
}
}
}
}
return 0;
}