java实现组合问题

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

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);
    }
}
复制代码

 



posted @   my日常work  阅读(3155)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示