编写一个应用程序,读取用户任意输入的一个正整数,使用for循环实现:根据用户输入的正整数n,求n!,即n!=n*(n-1)*(n-2)…*1(此处*为乘号)。java
时间: 2024-10-13 10:08:43 浏览: 20
为了编写这个应用程序,你可以创建一个简单的Java程序,使用Scanner类来获取用户的输入,然后利用for循环计算阶乘。以下是详细的步骤:
```java
import java.util.Scanner;
public class FactorialCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // 创建Scanner对象,用于读取用户输入
System.out.println("请输入一个正整数:"); // 提示用户输入
int number = scanner.nextInt(); // 获取用户输入的整数
// 验证输入是否为正整数
if (number < 0) {
System.out.println("抱歉,只能计算正整数的阶乘。");
return;
}
long factorial = calculateFactorial(number); // 调用计算阶乘的方法
System.out.printf("输入的%d的阶乘是:%d%n", number, factorial); // 打印结果
scanner.close(); // 关闭Scanner对象
}
// 计算阶乘的递归方法,n! = n * (n - 1)!
private static long calculateFactorial(int n) {
if (n == 0 || n == 1) {
return 1; // 0! 和 1! 的值都是1
} else {
return n * calculateFactorial(n - 1); // 递归调用,逐层减小n
}
}
}
```
在这个程序中,首先提示用户输入一个正整数,然后使用`calculateFactorial`方法计算阶乘。注意我们使用了long类型的变量来存储阶乘结果,因为随着n的增长,常规int类型可能会溢出。
阅读全文