编写一个程序求1!+2!+3!+…n! 首先由用户输入一个整数n,然后程序计算上式前n项的和。例如:用户输入2,则程序计算1的阶乘与2的阶乘的和,输出结果为:3。 输入格式: 输入为一个1~20间的整数n,含1与20。
时间: 2024-10-22 21:12:53 浏览: 14
计算 S=1!+2!+3!+...+N! C语言代码
要编写这个程序,我们可以使用循环结构来计算阶乘,并逐个累加到总和中。这里是一个简单的Java程序示例:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 请求用户输入
System.out.println("请输入一个1到20之间的整数:");
int n = scanner.nextInt();
if (n < 1 || n > 20) {
System.out.println("输入错误,请确保在1到20之间。");
return;
}
// 计算阶乘并累加
long factorialSum = 0;
for (int i = 1; i <= n; i++) {
factorialSum += factorial(i);
}
// 输出结果
System.out.printf("%d! 的前 %d 项之和为: %d", n, n, factorialSum);
}
// 阶乘函数
private static long factorial(int num) {
if (num == 0 || num == 1) {
return 1;
} else {
return num * factorial(num - 1);
}
}
}
```
在这个程序中,我们首先创建了一个`Scanner`对象来获取用户的输入。接着检查输入是否在给定范围内。然后,我们定义一个`factorialSum`变量来存储阶乘和的累积值,使用一个`for`循环来遍历从1到n的整数,并调用`factorial`函数来计算每个数的阶乘并将结果累加。
`factorial`函数使用递归的方式计算阶乘。如果输入的数字小于或等于1,直接返回1(因为0和1的阶乘都是1);否则,返回该数字乘以它的前一个数字的阶乘。
运行此程序时,按照提示输入一个1到20之间的整数,程序会计算并显示对应的阶乘和。
阅读全文