java實現組合問題
阿新 • • 發佈:2018-02-23
[] 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實現組合問題