java定义一个求阶乘的方法,求组合数:c=m!/(n!*(m-n)!)(m>n)(m和n的值从键盘获取 n!=1*2*3*...*n)
时间: 2024-09-28 21:11:41 浏览: 41
java代码-n的阶乘用n!表示
在Java中,我们可以定义一个递归方法来计算阶乘,并利用阶乘来计算组合数。请注意,组合数(C(m,n))的公式实际上涉及到两个阶乘的除法,即C(m, n) = m! / (n! * (m - n)!), 其中m大于n。这里我们首先定义一个计算阶乘的函数,然后再实现计算组合数的功能。以下是代码示例:
```java
import java.util.Scanner;
public class FactorialAndCombination {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入m:");
int m = scanner.nextInt();
System.out.println("请输入n:");
int n = scanner.nextInt();
// 检查是否满足m > n条件
if (m <= n) {
System.out.println("m must be greater than n");
return;
}
long factorialM = calculateFactorial(m);
long factorialN = calculateFactorial(n);
long factorialDifference = calculateFactorial(m - n);
// 计算并打印组合数
double combination = (double) factorialM / (factorialN * factorialDifference);
System.out.printf("C(%d,%d) = %.2f\n", m, n, combination);
}
// 递归计算阶乘
private static long calculateFactorial(int n) {
if (n == 0 || n == 1) {
return 1;
}
else {
return n * calculateFactorial(n - 1);
}
}
}
阅读全文