java三色球问题_C语言三色球问题代码解析

该博客介绍了如何使用C语言解决一个概率问题:从含有3个红球、3个白球和6个黑球的口袋中任取8个球,求所有可能的颜色搭配。通过循环结构遍历红球和白球的所有取值,验证黑球数量是否小于等于6,输出符合条件的组合。
摘要由CSDN通过智能技术生成

问题描述

一个口袋中放有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 的组合即为问题的解。

程序流程图:

422ef6867b1de21193caf682b9f0f823.png

下面是完整的代码:

#include

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(" %2d:    %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

bb5202be9d27e89a7fa0b203f7624f7d.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值