资讯中心 Info
当前位置:酷叮猫 > 资讯中心 >
C语言三色球问题
发布日期:2018-11-09 阅读次数:

问题描述

一个口袋中放有12个球,已知其中3个是红的,3个是白的,6个是黑的,现从中任取8个,问共有多少种可能的颜色搭配?

 

问题分析

根据问题描述可设任取的8个球中红球为m个,白球为n个,则黑球为8-m-n个。已知12个球中有3个红球,3个白球,6个黑球,因此,m的取值范围为[0, 3],n的取值范围因此为[0, 3],黑球的个数小于等于6,即 8 - m - n ≤ 6。

 

算法设计

循环结构检测 m、n 范围内的所有可能取值,再代入 8-m-n 中进行验证,能够满足条件 8 - m - n ≤ 6 的那些 m、n 和 8-m-n 的组合即为问题的解。

 

下面是完整的代码:

#include

int main()

{

    int m, n, number=0;

    printf("      红球  白球  黑球 ");

    printf("...................... ");

    for( m=0; m<=3; m++ )

        for( n=0; n<=3; n++ )

            if(8-m-n<=6)

                printf(" %2d:    %d    %d    %d ", ++number, m, n, 8-m-n);  

    return 0;

}

 

 

运行结果:

红球  白球  黑球

......................

 1:    0    2    6

 2:    0    3    5

 3:    1    1    6

 4:    1    2    5

 5:    1    3    4

 6:    2    0    6

 7:    2    1    5

 8:    2    2    4

 9:    2    3    3

10:    3    0    5

11:    3    1    4

12:    3    2    3

13:    3    3    2

课程体系
通知公告