用java设计一个方法Combination(),给定两个非负整数m, n(m>n),计算C_n^m的值
时间: 2024-02-11 15:07:13 浏览: 83
好的,我可以帮你设计这个方法。首先,我们需要知道组合数的计算公式:
C_n^m = n! / (m! * (n-m)!)
其中,n! 表示 n 的阶乘,即 n*(n-1)*...*2*1。
那么,我们可以用递归的方式来计算阶乘和组合数,具体实现如下:
```java
public class Combination {
public static int factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
public static int combination(int m, int n) {
if (m == n) {
return 1;
} else {
return factorial(n) / (factorial(m) * factorial(n - m));
}
}
public static void main(String[] args) {
int m = 5;
int n = 10;
int result = combination(m, n);
System.out.println("C_" + m + "^" + n + " = " + result);
}
}
```
在上面的代码中,我们定义了两个方法:factorial() 和 combination()。factorial() 方法用来计算阶乘,而 combination() 方法则用来计算组合数。
最后,在 main() 方法中,我们给定了 m=5 和 n=10 的值作为示例,然后调用 combination() 方法计算 C_5^10 的值,并将结果打印出来。
希望这个代码对你有所帮助!
阅读全文