三色球问题

若一个口袋里放了12个球,3个红的,3个黄色的,6个绿色的,从中任意选择8个,问有多少不同的搭配?

1:问题的分析

取红色的球可以有4种可能:0个,1个,2个,3个

取黄色的球可以有4种可能:0个,1个,2个,3个

取绿色的球可以有7种可能:0个,1个,2个,3个,4个,5个,6个

我们只需要穷举每一种可能的情况就行了

package 三色球;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        int red,yellow,green;//存储红,黄,绿球的个数
        int n;
        System.out.println("三色球问题的求解!\n");
        System.out.println("请输入红色球的数量为:");
        Scanner input = new Scanner(System.in);
        red = input.nextInt();
        System.out.println("请输入黄色的球的数量:");
        yellow = input.nextInt();
        System.out.println("请输入绿色球的数量:");
        green = input.nextInt();
        System.out.println("请先输入取出球的数量:");
        n = input.nextInt();
        //求解
        threeball(red,yellow,green,n);

    }

    private static void threeball(int red, int yellow, int green,int n) {
        int i,j,k;
        System.out.println("总共有如下几种可能!\n");
        System.out.printf("\t红球\t黄球\t绿球");
        for(i=0;i<=red;i++)
        {
            for(j=0;j<=yellow;j++)
            {
                for(k=0;k<=green;k++)
                {
                    if(i+j+k == n)
                    {
                        System.out.printf("\t%d\t%d\t%d\n",i,j,k);
                    }
                }
            }
        }

    }

}

结果:

三色球问题的求解!

请输入红色球的数量为:
3
请输入黄色的球的数量:
3
请输入绿色球的数量:
6
请先输入取出球的数量:
8
总共有如下几种可能!

红球 黄球 绿球 0 2 6
0 3 5
1 1 6
1 2 5
1 3 4
2 0 6
2 1 5
2 2 4
2 3 3
3 0 5
3 1 4
3 2 3
3 3 2

时间: 2024-10-11 03:28:50

三色球问题的相关文章

C#趣味程序---三色球问题

问题:若一个口袋中放有12个球,3红3白和6黑,问从袋中随意取8个球,有多少种不同的颜色搭配? using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.WriteLine("共同拥有下面几种取法:"+'\n'+"<------------------------------------------------------

[转]100个经典C语言程序(益智类问题)

目录: 1.绘制余弦曲线 2.绘制余弦曲线和直线 3.绘制圆 4.歌星大奖赛 5.求最大数 6.高次方数的尾数 8.借书方案知多少 9.杨辉三角形 10.数制转换 11.打鱼还是晒网 12.抓交通肇事犯 13.该存多少钱 14.怎样存钱利最大 15.捕鱼和分鱼 16.出售金鱼 1.7 分数四则运算 17.平分七筐鱼 18.有限5位数 19. 8 除不尽的数 21.4位反序数 22.求车速 23.阿姆斯特朗数 24.完全数 26.亲密数 27.自守数 28.回文数 29.求具有abcd=(ab+c

C++第4次实验(基础班)—循环结构程序设计

此次上机中的4个题目项目6.项目7(选1)必做.其他2两题可从剩下的项目中选,也可从项目7中选. [项目1:利用循环求和]求1000以内全部偶数的和(答案:250500) 要求:请编出3个程序来,分别用三种循环语句完毕,注意体会各种循环语句的运行过程及语法特点. [项目2-分数的累加]编程序,输出1/3-3/5+5/7-7/9-+19/21的结果(答案:-0.383842) 提示:假设直接解决上面的问题有困难,能够设计一条"由易到难"的路线,逐渐解决当中要解决的问题.让自己的思路明朗起

Python学习日志(三)

运算补充(因为之前看书看过的我又忘了...) python3 里 / 直接是浮点除.python2的 / 是直接整除,取整数部分,小数不要了,python3也可以这样整除,用//实现. **是乘方!!!3**2=8.这个运算符有点个性啊. 比起左侧的操作符优先级高,比右侧优先级低.看图: 第一句**比左侧优先级高,因此先乘方再加负号. 第二句**比右侧优先级低,因此先加负号再乘方. 其实跟我们自己来算是一样的,但是就是想夸一下python,就我学到的知识,光运算和懒逻辑这两点就让我觉得它比我的脑

[转]100个经典C语言程序

本文转载自:http://blog.sina.com.cn/s/articlelist_1615065844_0_1.html 1.绘制余弦曲线 在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线*问题分析与算法设计如果在程序中使用数组,这个问题十分简单.但若规定不能使用数组,问题就变得不容易了. 关键在于余弦曲线在0~360度的区间内,一行中要显示两个点,而对一般的显示器来说,只能按行输出,即:输出第一行信息后,只能向下一行输出,不能再返回到上一行. 为了获得本文要求的图形就必须在一行

Python 趣味百题

趣味整数 1 不重复的3位数 -易 2 水仙花数 -易 3 完全数 -中 4 相亲数 -中 5 黑洞数 -中 6 勾股数 -易 7 自守数 -易 8 3位反序数 -中 趣味素数 1 素数 -中 2 孪生素数 -中 3 金蝉素数 -中 4 可逆素数 -中 5 回文素数 -中 6 平方回文素数 -中 7 梅森尼数 -中 8 哥德巴赫猜想 -中 9 等差素数数列 -中 趣味图形 1 回型矩阵 -中 2 九九乘法表 -易 3 杨辉三角 -易 数学问题 1 天平秤物 -难 2 黑色星期五 -易 3 存钱问

《高级语言程序设计》习题集

<高级语言程序设计>习题集 (本资料仅供学生学习使用) ? ? 求最大数 借书方案知多少 杨辉三角形 数制转换 打鱼还是晒网 该存多少钱 怎样存钱利最大 出售金鱼 平分七筐鱼 有限5位数 8 除不尽的数 一个奇异的三位数 4位反序数 求车速 阿姆斯特朗数 完全数 亲密数 回文数 求素数 求具有abcd=(ab+cd)2性质的四位数 歌德巴赫猜想 百钱百鸡问题 爱因斯坦的数学题 换分币 年龄几何 三色球问题 马克思手稿中的数学题 最大公约数和最小公倍数 分数比较 分数之和 将真分数分解为埃及分数

2014秋C++ 第9周项目 循环程序设计

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看. 阅读程序 程序分析题,阅读下列程序,写出程序的运行结果,建议在上机时进行验证(云学堂将给出代码,直接复制到C4droid或CodeBlocks中运行即可),如果与自己的预期有出入,尤其注意对照找出问题. 读这些小程序,可以见识不少处理技巧.读程序,也是一种非常非常重要的学习方式,应该给予重视!

分支和循环2

测试题: 0.       下面的循环会打印多少次"I love FishC"? for i in range(0,10, 2): print('I LoveFishC')    答:for I in range(0,10,2)打印的I 的值为:0,2,4,6,8     所以打印5次I love FishC   1.       下面的循环会打印多少次"I love FishC"? for i in 5: print('I Love FishC') 答:0次,会报