1. 程式人生 > >java實現組合問題

java實現組合問題

[] util 不同的 多少 pos int() port turn scan

剛才剛更新了排列問題,順帶把組合問題也發表一下

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實現組合問題