题目要求:有16个球,其中白色球5个,黑色球4个,蓝色球7个,如果从中无返回任意取出10个球,请编写一个程序计算出3种颜色都有的情况下多少种颜色搭配,并输出每一种颜色搭配。
分析:解决这类问题,最直接的方法就是穷举法。穷举出所有可能的解,然后再去除不符合题意要求的解,剩下的就是我们所需的解了。从上面分析来看,如果要求出所有3种颜色的搭配方案,那么我们只需要在3个都允许的范围内取值,并保证3个球的个数之和为10就可以了。我们可以用程序先求出所有可能的具有3种颜色的搭配,再利用总数为10这一条件加以筛选。
#include<iostream>
using namespace std;
int main()
{
int count=0;
cout<<" 白 黑 蓝"<<endl;
for(int i=1;i<=5;i++)
{
for(int j=1;j<=4;j++)
{
for(int k=1;k<=7;k++)
{
if(i+j+k==10)
{
cout<<i<<" "<<j<<" "<<k<<" "<<endl;
count++;
}
}
}
}
cout<<"搭配方案的总数"<<count<<endl;
return 0;
}