3.假设某个类中有一个long factorial(int n)方法,该方法是求n!,要求对参数作检查。当0<=n<=100时,方法算出n!,否则抛出一个参数异常(ArgumentException),请你根据上述描述,请编程实现。
时间: 2024-02-06 20:10:17 浏览: 59
以下是一个Java实现的例子:
```java
public class Factorial {
public static long factorial(int n) throws IllegalArgumentException {
if (n < 0 || n > 100) {
throw new IllegalArgumentException("n must be between 0 and 100");
}
long result = 1;
for (int i = 2; i <= n; i++) {
result *= i;
}
return result;
}
}
```
在这个例子中,我们定义了一个名为`Factorial`的类,并在其中实现了一个名为`factorial`的静态方法。该方法接受一个整数`n`作为参数,并返回`n!`的值。如果传入的`n`不在0到100的范围内,则抛出一个`IllegalArgumentException`异常。
在方法主体中,我们首先检查传入的`n`是否在0到100的范围内,如果不是则抛出异常。然后使用一个循环计算`n!`的值,并将其存储在`result`变量中。最后返回`result`的值。
在使用该方法时,可以像下面这样调用它:
```java
long result = Factorial.factorial(5);
System.out.println(result); // 输出: 120
```
当传入的`n`为负数或大于100时,会抛出一个异常,例如:
```java
long result = Factorial.factorial(-1); // 抛出IllegalArgumentException异常
```
阅读全文