三色球问题

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();

以上是关于三色球问题的主要内容,如果未能解决你的问题,请参考以下文章

第八周实践三色球

第八周实践三色球

三色球问题

编程之法:面试和算法心得(荷兰国旗)

求解一道Python编程题

c++打卡训练(14)