用java设计一个方法Combination(),给定两个非负整数m, n(m>n),计算C_n^m的值,还没有计算阶乘的办法factorial(),并解决factorial()方法红标的问题
时间: 2024-02-06 21:04:45 浏览: 66
好的,如果你还没有计算阶乘的方法,可以在 `Combination()` 方法中使用循环来计算阶乘,具体实现如下:
```java
public class Combination {
public static int Combination(int m, int n) {
if (m == n) {
return 1;
} else {
int numerator = 1; // 分子
int denominator = 1; // 分母
for (int i = n; i > n - m; i--) {
numerator *= i;
}
for (int i = 1; i <= m; i++) {
denominator *= i;
}
return numerator / denominator;
}
}
public static void main(String[] args) {
int m = 5;
int n = 10;
int result = Combination(m, n);
System.out.println("C_" + m + "^" + n + " = " + result);
}
}
```
在上面的代码中,我们只定义了一个方法 `Combination()`,并在其中使用循环来计算阶乘。具体来说,我们用一个变量 `numerator` 来表示分子,用一个变量 `denominator` 来表示分母,然后分别用两个循环来计算它们的值。最后,将它们的值相除即可得到组合数。
另外,如果你的 `factorial()` 方法出现了红标问题,可能是因为你的方法名和 Java 内置的某个方法名重复了。你可以尝试修改方法名,或者加上一个类名作为前缀,例如改为 `MyFactorial()`。
希望这个代码对你有所帮助!
阅读全文