用递归法实现函数long fact(int n),该函数返回n的阶乘,然后编程调用该函数计算下式的值,其中m和n的值要求从键盘输入:n!/m!(n-m)!(8分)
时间: 2024-09-09 18:17:31 浏览: 69
python递归函数求n的阶乘,优缺点及递归次数设置方式
递归法实现阶乘函数是一种将问题分解为更小的、类似的问题的方法。阶乘函数定义为:n! = n * (n-1) * (n-2) * ... * 2 * 1,其中1! = 1。递归实现阶乘函数时,基本情况是0! = 1。对于n>0,阶乘可以递归地表示为n! = n * (n-1)!。
下面是一个简单的递归函数`fact`实现n的阶乘,并使用该函数计算给定的式子:
```java
import java.util.Scanner;
public class FactorialCalculator {
// 递归实现阶乘函数
public static long fact(int n) {
if (n <= 1) { // 基本情况
return 1;
} else {
return n * fact(n - 1); // 递归情况
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入n的值:");
int n = scanner.nextInt();
System.out.print("请输入m的值:");
int m = scanner.nextInt();
scanner.close();
// 计算n! / (m! * (n - m)!)
long nFact = fact(n);
long mFact = fact(m);
long nMinusMFact = fact(n - m);
long result = nFact / (mFact * nMinusMFact);
// 输出结果
System.out.println("结果是:" + result);
}
}
```
在上述代码中,`fact`函数通过递归调用自身来计算阶乘值。在`main`函数中,程序首先提示用户输入n和m的值,然后调用`fact`函数计算n!、m!和(n-m)!,接着计算n! / (m! * (n - m)!)的结果,并输出。
阅读全文