刚才刚更新了排列问题,顺带把组合问题也发表一下

1.问题描述:

    已知有m个球,从m个球中取n个球有多少种不同的取法。

2.输入示例:

    请输入总球的个数和要取的球的个数
    6 5

3.输出示例:

    共有6种取法

4.代码示例:
import java.util.Scanner;

//已知有m个球,从中取n个球,请问有多少种不同的取法
public class Quqiu {
    public static void main(String[] args) {
        Scanner scn = new Scanner(System.in);
        System.out.println("请输入总球的个数和要取的球的个数");
        int m = scn.nextInt();
        int n = scn.nextInt();
        int sum = f(m,n);//这个方法是从m个球中取n个球出来,返回取球方案数目
        System.out.println("共有" + sum + "种取法");
    }

    public static int f(int m, int n) {
        if(m==n){
            return 1;
        }
        if(n==0){
            return 1;
        }
        
        //假设有一个特殊球,有两种情况,从除特殊球剩下的球中,取n个球,另一种一定不取特殊球
        return f(m-1,n)+f(m-1,n-1);
    }
}

java实现组合问题的更多相关文章

  1. Java设计模式——组合模式

    JAVA 设计模式 组合模式 用途 组合模式 (Component) 将对象组合成树形结构以表示“部分-整体”的层次结构.组合模式使得用户对单个对象和组合对象的使用具有唯一性. 组合模式是一种结构型模 ...

  2. Java中组合 设计技巧 实例

    关于组合 和 集成 先放两篇文章:这两篇文章写的太好了. http://blog.csdn.net/u013905744/article/details/51752044    Java的组合(持有对 ...

  3. 【设计模式】Java设计模式 - 组合模式

    Java设计模式 - 组合模式 不断学习才是王道 继续踏上学习之路,学之分享笔记 总有一天我也能像各位大佬一样 原创作品,更多关注我CSDN: 一个有梦有戏的人 准备将博客园.CSDN一起记录分享自己 ...

  4. JAVA 设计模式 组合模式

    用途 组合模式 (Component) 将对象组合成树形结构以表示“部分-整体”的层次结构.组合模式使得用户对单个对象和组合对象的使用具有唯一性. 组合模式是一种结构型模式. 结构

  5. Java之组合数组1

    我们先说"数组",数组是有序数据的集合,数组中的每个元素具有相同的数组名和下标来唯一地确定数组中的元素. 一.一维数组的定义 type arrayName[]; 其中类型(type ...

  6. HDOJ-ACM1015(JAVA) 运用 组合、全排列实现

    转载声明:原文转自:http://www.cnblogs.com/xiezie/p/5573934.html 这个题目的题意:(自己结合百度翻译,简单的翻译了一下) “这个项目是在一个在二楼图书馆一幅 ...

  7. JAVA实现组合、排列、重复排列(多层循环)

    1.代码 package com.hdwang; import java.util.ArrayList; import java.util.Arrays; import java.util.List; ...

  8. Java 设计模式 —— 组合模式

    在现实生活中,存在很多"部分-整体"的关系,例如,大学中的部门与学院.总公司中的部门与分公司.学习用品中的书与书包.生活用品中的衣服与衣柜.以及厨房中的锅碗瓢盆等.在软件开发中也是 ...

  9. 【Thinking in Java】组合、继承和代理的区别

    三者的定义: 组合:在新类中new 另外一个类的对象,以添加该对象的特性. 继承:从基类继承得到子类,获得基类的特性. 代理:在代理类中创建某功能的类,调用类的一些方法以获得该类的部分特性. 使用场合 ...

随机推荐

  1. js中定义对象的几种方式

    转载:http://blog.sina.com.cn/s/blog_60f632050100wz7h.html (1)基于已有对象的扩充方法:适用于临时构建对象,弊端:每次构建对象都要新建一个. va ...

  2. Vim【学习笔记】

    [2017-02-04] 先放几个比较好的资料,看这些资料就好了: 1.Vim入门基础 http://www.jianshu.com/p/bcbe916f97e1 2.vim配置 http://blo ...

  3. Linux修改IP永久生效

    修改IP永久生效按以下方法: 1)修改配置文件vi /etc/sysconfig/network-scripts/ifcfg-eth0(eth0,第一块网卡,如果是第二块则为eth1) 按如下修改ip ...

  4. AJAX入门第一篇就够了

    什么是Ajax Ajax(Asynchronous JavaScript and XML) 异步JavaScript和XML Ajax实际上是下面这几种技术的融合: (1)XHTML和CSS的基于标准 ...

  5. Qt滑动条设计与实现

    没有找到Qt的滑动条控件,所以自己写了一个,能够实现亮度调节.音量调节等功能. 效果如下图: 主要设计思路: 有些调节功能如对比度是有负值的,所以需要能对滑动条的数值范围进行设置,不局限于0~100 ...

  6. 调试 smallcorgi/Faster-RCNN_TF 的demo过程遇到的问题

    最近在调试faster R-CNN时,遇到了各种各样的问题.使用的算法库为https://github.com/smallcorgi/Faster-RCNN_TF 注:本文使用的是通过virtuale ...

  7. 解决`向github提交代码是老要输入用户名密码`

    在命令行输入命令:git config --global credential.helper store☞ 这一步会在用户目录下的.gitconfig文件最后添加: [credential] help ...

  8. nodejs和npm的安装

    下载nodejs的压缩包 网址:https://nodejs.org/en/ 下载以tar.xz结尾的包例如:node-v8.9.4-linux-x64.tar.xz 上传包到制定的目录 可以用lrz ...

  9. 【echarts3】--1 简单入门

    echarts3 相信大家都了解吧,是百度研发的 ECharts 特性介绍 ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8 ...

  10. 我的2017年终总结(PF项目框架设计心得分享 1.0rc new)

    一晃眼又过去了一年,在这一年里尽管有许多不如意的事,却阻挡不了我前进的脚步.先用一句话来总结去年一年的状态,那就是“无休无止的忙碌”.而这样的忙碌状态对我来说是不可取的,因为匮乏的忙碌只能让头脑处于一 ...