从键盘输入5个数,求出5个数的阶乘之和。若输入负数时,产生异常并进行相应的处理java
时间: 2024-10-23 07:12:44 浏览: 20
在Java中,你可以使用Scanner类从键盘获取用户输入,然后遍历输入的数字,计算它们的阶乘并累加。对于负数,可以使用try-catch语句捕获ArithmeticException异常,因为计算负数的阶乘会抛出这个异常。下面是一个简单的示例:
```java
import java.util.Scanner;
public class FactorialSum {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double sum = 0;
System.out.println("请输入五个正整数或一个小数:");
for (int i = 0; i < 5; i++) {
try {
double number = scanner.nextDouble();
if (number < 0) {
throw new ArithmeticException("负数无法计算阶乘");
}
sum += factorial(number); // 计算阶乘并累加到sum
} catch (ArithmeticException e) {
System.out.println("错误:" + e.getMessage());
break; // 如果遇到负数,停止循环
}
}
System.out.printf("五个数的阶乘之和为: %.2f\n", sum);
scanner.close();
}
// 阶乘函数
private static long factorial(double num) {
long result = 1;
for (long i = 1; i <= Math.round(num); i++) {
result *= i;
}
return result;
}
}
```
在这个程序中,`factorial()`函数用于计算给定数值的阶乘,如果输入的是小数,则取其整数部分进行计算。
阅读全文