java 使用递归的方法,定义函数fac计算阶乘n!,并将结果返回到主调函数。主函数中完成数据的输入和函数 fac的测试。! fac的函数首部为。 public·static·double·fac(int·n).
时间: 2024-09-24 18:28:50 浏览: 46
在Java中,你可以通过递归的方式来实现阶乘的计算。递归是一种函数自身调用的方式,通常用于解决可以分解成相似子问题的问题,如阶乘就是一个经典的递归例子。下面是一个简单的`fac`函数定义,它接受一个整数`n`作为参数,并返回它的阶乘:
```java
public static double fac(int n) {
// 基线条件:当n等于0或1时,阶乘为1
if (n == 0 || n == 1) {
return 1;
}
// 递归条件:n的阶乘等于n乘以(n-1)的阶乘
else {
return n * fac(n - 1);
}
}
```
在这个函数中,如果`n`不是0或1,那么会不断地调用自身,每次将`n`减1并乘以当前的结果,直到达到基本情况为止。
在主函数(main函数)中,你可以测试这个函数,例如获取用户输入的值并打印阶乘结果:
```java
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个正整数:");
int num = scanner.nextInt();
double factorial = fac(num);
System.out.printf("The factorial of %d is %.2f%n", num, factorial);
scanner.close();
}
```
阅读全文