有两个红球、三个黄球、四个白球,任意取五个球,其中必须有一个黄球,用c语言编程输出所有可能的方案。
时间: 2023-05-26 20:02:59 浏览: 110
#include <stdio.h>
int main() {
int red = 2, yellow = 3, white = 4; // 三种颜色的球的数目
int count = 0; // 记录方案数
// 五个球的循环
for(int i = 1; i <= 5; i++) {
// 必须选择一个黄球
if(i == 1) {
// 在剩下的球里取4个球的循环
for(int j = 1; j <= 9; j++) {
for(int k = j+1; k <= 9; k++) {
for(int l = k+1; l <= 9; l++) {
for(int m = l+1; m <= 9; m++) {
// 判断四个球中红球、黄球、白球的数目是否符合要求
int r = 0, y = 0, w = 0;
if(j <= 2) r++;
if(k <= 2) r++;
if(l <= 2) r++;
if(m <= 2) r++;
if(j > 2 && j <= 5) y++;
if(k > 2 && k <= 5) y++;
if(l > 2 && l <= 5) y++;
if(m > 2 && m <= 5) y++;
if(j > 5 && j <= 9) w++;
if(k > 5 && k <= 9) w++;
if(l > 5 && l <= 9) w++;
if(m > 5 && m <= 9) w++;
if(r == red && y == yellow-1 && w == white) {
count++;
// 输出符合要求的五个球的编号
printf("方案%d: %d %d %d %d %d\n", count, j, k, l, m, i);
}
}
}
}
}
} else {
// 在剩下的球里取4个球的循环
for(int j = 1; j <= 9; j++) {
for(int k = j+1; k <= 9; k++) {
for(int l = k+1; l <= 9; l++) {
for(int m = l+1; m <= 9; m++) {
// 判断四个球中红球、黄球、白球的数目是否符合要求
int r = 0, y = 0, w = 0;
if(j <= 2) r++;
if(k <= 2) r++;
if(l <= 2) r++;
if(m <= 2) r++;
if(j > 2 && j <= 5) y++;
if(k > 2 && k <= 5) y++;
if(l > 2 && l <= 5) y++;
if(m > 2 && m <= 5) y++;
if(j > 5 && j <= 9) w++;
if(k > 5 && k <= 9) w++;
if(l > 5 && l <= 9) w++;
if(m > 5 && m <= 9) w++;
if(r == red && y == yellow && w == white) {
count++;
// 输出符合要求的五个球的编号
printf("方案%d: %d %d %d %d %d\n", count, j, k, l, m, i);
}
}
}
}
}
}
}
return 0;
}
阅读全文