2 计算并输出n java,写一个完整的程序:输入数字n,程序自动计算n!并输出。(注1:n!=1*2*3...*n, 注2:请使用递归实现)...
时间: 2023-08-31 13:30:15 浏览: 44
### 回答1:
以下是使用递归实现的Java程序,可以计算并输出n!:
```java
import java.util.Scanner;
public class Factorial {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个正整数n:");
int n = scanner.nextInt();
long result = factorial(n);
System.out.println(n + "! = " + result);
}
public static long factorial(int n) {
if (n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
}
```
程序首先通过Scanner类获取用户输入的正整数n,然后调用factorial方法计算n!,最后输出结果。factorial方法使用递归实现,当n等于1时,返回1;否则,返回n乘以factorial(n-1)的结果。
### 回答2:
import java.util.Scanner;
public class Factorial {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个数字n:");
int n = scanner.nextInt();
int result = calculateFactorial(n);
System.out.println(n + "! = " + result);
}
// 递归计算n!
public static int calculateFactorial(int n) {
// 终止条件
if (n == 0 || n == 1) {
return 1;
}
// 递归调用
return n * calculateFactorial(n - 1);
}
}
### 回答3:
以下是一个使用递归方法计算并输出n的阶乘的Java程序:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入数字n:");
int n = scanner.nextInt();
// 调用阶乘函数计算n的阶乘
int result = factorial(n);
System.out.println(n + "! = " + result);
}
// 递归计算阶乘函数
public static int factorial(int n) {
if (n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
}
使用递归实现阶乘的思路是,当n等于1时,阶乘的结果是1;否则,将n与(n-1)的阶乘相乘作为结果。这样一直递归下去,直到递归到n=1时停止。当递归停止后,将返回结果回传给上一级函数,最终得到n的阶乘的结果。