口袋中有红、黄、蓝、白、黑5种颜色的球若干个。每次从口袋中取出3个不同颜色的球,问有多少种取法?并输出每一种取法。
这是个组合问题,答案是 C 5 3 = 10 C_5^3=10 C53=10
使用枚举,代码如下:
#include <iostream> using namespace std; int main() { enum color { red, yellow, blue, white, black }; color color1; int i, j, k, loop; int flag = 0; //计数器 for (i = red; i <= black; i++) { for (j = red; j <= i; j++) { for (k = red; k <= j; k++) { if (i != j && i != k && j != k) { flag++; for (loop = 1; loop <= 3; loop++) { switch (loop) { case 1: color1 = color(i); break; case 2: color1 = color(j); break; case 3: color1 = color(k); break; default: break; } switch (color1) { 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 << endl; cout << "total: " << flag << endl; return 0; }输出如下: