要求
若一个口袋里有12个球,其中3红,3白,6黑,从中取8个球,问有多少种不同的颜色搭配?
分析
根据问题描述可设任取的8个球中红球为i个,白球为j个,则黑球为8-i-j个。已知12个球中有3个红球,3个白球,6个黑球,因此,i的取值范围为[0, 3],j的取值范围因此为[0, 3],黑球的个数小于等于6,即 8 - i - j ≤ 6。
代码
#include <stdio.h> // 引入标准输入输出库
void main(){ // 主函数入口
int i, j, num = 0; // 定义整型变量i, j用于循环和计数,num用于记录符合条件的组合数量
// 第一个循环,i代表红球的数量,从0到3
for(i = 0; i <= 3; i++)
// 第二个循环,j代表白球的数量,从0到3
for(j = 0; j <= 3; j++)
// 判断黑球的数量是否小于等于6
if(8 - i - j <= 6)
// 打印当前组合的红球、白球和黑球数量,并输出组合序号
printf("%2d:%d个红球,%d个白球,%d个黑球\n", ++num, i, j, 8 - i - j);
// 打印所有符合条件的组合数量
printf("共有%d种\n", num);
}