手机版
你好,游客 登录 注册
背景:
阅读新闻

C语言三色球问题代码解析

[日期:2018-11-29] 来源:Linux社区  作者:Linux [字体: ]

问题描述

一个口袋中放有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(" %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

C语言三色球问题代码解析

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2018-11/155600.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款