三色球问题
Posted lllyclh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三色球问题相关的知识,希望对你有一定的参考价值。
1.问题描述
一个口袋中放有12个球,已知其中3个是红的,3个是白的,6个是黑的,现从中任取8个,问共有多少种可能的颜色搭配?
2.问题分析
假设八个球,红球a个,白球b个,黑球c个,那么c=8-a-b个。而且a<=3,b<=3,也就是说8-a-b<=6
3.算法设计
穷举法用两个for循环,第一个for控制红球的数量,第二个控制白球的数量,最后用if语句,判断符不符合8-a-b是不是<=6,如果是就打印输出
4.程序
#include<iostream> using namespace std; int main() int a = 0, b = 0, c = 0;//这里是定义了一个c,是说黑球的数量,其实c就是8-a-b,也可不定义c,最后一行打印输出注意不要写c。 for (a = 0; a <= 3; a++)//控制黑球数量 for (b = 0; b <= 3; b++)//控制白球数量 if (8 - a - b <= 6 )//判断 cout << a << " " << b << " " << 8-a-b << " " << endl; return 0;
087.三色球问题
#include<stdio.h>
void main()
int i,j,count=0;
clrscr();
puts("****************************************************************");
puts("* This program is to solve Problem of Three Color Ball. *");
puts("* The Problem is as follows: There are 12 balls in the pocket. *");
puts("* Amony them, 3 balls are red,3 balls are white and 6 balls *");
puts("* are black. Now take out any 8 balls from the pocket,how *");
puts("* many color combinations are there? *");
puts("****************************************************************");
puts(" >> The solutions are:");
printf(" No. RED BALL WHITE BALL BLACK BALL\\n");
printf("-----------------------------------------------------\\n");
for(i=0;i<=3;i++) /*循环控制变量i控制任取红球个数0 ̄3*/
for(j=0;j<=3;j++) /*循环控制变量j控制任取白球个数0 ̄3*/
if((8-i-j)<=6)
printf(" %2d | %d | %d | %d\\n",++count,i,j,8-i-j);
printf("-----------------------------------------------------\\n");
printf(" Press any key to quit...");
getch();
以上是关于三色球问题的主要内容,如果未能解决你的问题,请参考以下文章