运行效果:
代码:
public class Group {
public static void main(String[] args) {
System.out.print("请输入n:");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.print("请输入m:");
int m = sc.nextInt();
if ((n >= m) && (n<=20)) {
zuhe(n, m);
System.out.println(zuhe(n, m));
}
}
private static int zuhe(int n, int m) {
if ((n == m) || (n == 0) || (m == 0)) {
return 1;
} else
return zuhe(n - 1, m) + zuhe(n - 1, m - 1);
}
}
概念:组合数使用C(n,m)表示,表示在n个数中取m个数的方案。
组合数的公式:
C(n,m) = C(n,n-m)
C(n,m) = C(n-1,m)+C(n-1,m-1)
所以递归函数就按照这个公式来写就可以了。