java求阶乘的代码
javaimport java.util.Scanner;
public class FactorialCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个正整数:");
int n = scanner.nextInt();
long factorial = calculateFactorial(n);
System.out.println(n + "的阶乘是:" + factorial);
scanner.close();
}
public static long calculateFactorial(int n) {
if (n < 0) {
throw new IllegalArgumentException("输入必须是非负整数");
}
if (n == 0 || n == 1) {
return 1;
} else {
return n * calculateFactorial(n - 1);
}
}
}
这个程序首先要求用户输入一个正整数,然后使用递归方法计算该整数的阶乘,并打印出结果。这个示例中使用了递归来计算阶乘,但对于大的输入值,可能会导致栈溢出。在实际应用中,你可能需要使用迭代或其他更高效的方法来计算阶乘。
如果你想使用迭代而不是递归来计算阶乘,可以使用
javaimport java.util.Scanner;
public class FactorialCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个正整数:");
int n = scanner.nextInt();
long factorial = calculateFactorial(n);
System.out.println(n + "的阶乘是:" + factorial);
scanner.close();
}
public static long calculateFactorial(int n) {
if (n < 0) {
throw new IllegalArgumentException("输入必须是非负整数");
}
long factorial = 1;
for (int i = 1; i <= n; i++) {
factorial *= i;
}
return factorial;
}
}
这个版本使用了一个for
循环来迭代计算阶乘,相对于递归方法,更适合处理大数值的情况,因为不会产生栈溢出的问题。