java求阶乘
时间: 2023-10-11 22:20:01 浏览: 65
以下是 Java 中求阶乘的示例代码:
```java
public static int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n-1);
}
}
// 示例用法
int result = factorial(5); // 计算 5 的阶乘
System.out.println(result); // 输出 120
```
该方法使用递归的方式计算阶乘,当输入参数 `n` 等于 0 时返回 1,否则返回 `n` 乘以 `factorial(n-1)` 的结果。注意,在计算阶乘时,输入的参数必须为非负整数。
相关问题
Java求阶乘的递归写法
好的,关于Java求阶乘的递归写法,可以使用如下代码实现:
```
public static int factorial(int n) {
if (n == 1 || n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
```
这个方法会不断递归调用自身,直到 n 等于 1 或者 0 时返回 1,否则返回 n 和 n-1 的阶乘相乘的结果。
java求阶乘并捕获三种异常
下面是一个 Java 程序,可以求阶乘并捕获三种异常:
```java
import java.util.Scanner;
public class Factorial {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数:");
int n = scanner.nextInt();
try {
int result = factorial(n);
System.out.println(n + " 的阶乘是:" + result);
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
} catch (ArithmeticException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
System.out.println("未知异常:" + e.getMessage());
}
}
public static int factorial(int n) throws IllegalArgumentException, ArithmeticException {
if (n < 0) {
throw new IllegalArgumentException("输入的整数必须大于等于 0。");
}
if (n > 12) {
throw new ArithmeticException("输入的整数太大了,超出了 int 类型的范围。");
}
int result = 1;
for (int i = 2; i <= n; i++) {
result *= i;
}
return result;
}
}
```
这个程序首先从标准输入读取一个整数,然后调用 `factorial` 方法计算该整数的阶乘。在 `factorial` 方法中,如果输入的整数小于 0,就抛出一个 `IllegalArgumentException` 异常;如果输入的整数大于 12,就抛出一个 `ArithmeticException` 异常;否则就计算阶乘并返回结果。
在 `main` 方法中,我们使用了三个 `catch` 语句分别捕获 `IllegalArgumentException`、`ArithmeticException` 和其他异常。对于前两种异常,我们只需要打印异常的消息即可;对于其他异常,我们打印一个通用的错误消息。
相关推荐
![class](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)