用java编写一个for语句实现求阶乘N!
时间: 2024-09-11 11:04:26 浏览: 74
在Java中,你可以使用`for`循环结合递归或迭代的方式来计算阶乘。这里我们展示一个简单的迭代方法:
```java
public class FactorialCalculator {
public static long factorial(int n) {
if (n == 0 || n == 1) { // 阶乘的基本条件,0! = 1
return 1;
}
long result = 1; // 初始化结果为1
for (int i = 2; i <= n; i++) {
result *= i; // 逐次将i乘到result上
}
return result;
}
public static void main(String[] args) {
int n;
System.out.println("请输入一个正整数:");
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
try {
long fact = factorial(n);
System.out.printf("The factorial of %d is %d\n", n, fact);
} catch (ArithmeticException ex) {
System.out.println("输入的数值过大,超出long类型的范围");
} finally {
sc.close();
}
}
}
```
这个程序首先判断基本情况(0和1的阶乘),然后通过for循环从2开始,依次乘到n,得到阶乘的结果。如果输入的n值过大,可能会超过`long`类型的范围,这时需要捕获`ArithmeticException`。
阅读全文