C语言:三色球问题:12个中3红3白6黑,取8个求共有多少种可能

    xiaoxiao2025-04-02  30

    问题:

    在一个口袋里放有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<stdio.h>int main(){int m, n, number=0;printf(" 红球 白球 黑球\n");printf("......................\n");for( m=0; m<=3; m++ )for( n=0; n<=3; n++ )if(8-m-n<=6)printf(" -: %d %d %d\n", ++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

    最新回复(0)