给定一个整数N,编写程序求1!+2!+……+N!(0<N<100)
时间: 2023-12-19 16:03:52 浏览: 44
可以使用循环来计算每个数字的阶乘并累加求和,以下是一个示例程序:
```python
N = int(input("请输入一个整数N:"))
result = 0
factorial = 1
# 计算每个数字的阶乘并累加求和
for i in range(1, N+1):
factorial *= i
result += factorial
print("1!+2!+...+{}!={}".format(N, result))
```
在程序中,我们先读取用户输入的整数N,然后初始化结果变量`result`为0和阶乘变量`factorial`为1。接下来通过循环计算每个数字的阶乘,并将其累加到结果变量中。最后输出结果。
相关问题
编写一个程序exp-3.c。对于给定的正整数n,求1!+2!+……n!,给出时间复杂度为O(n)的算法程序。
以下是实现了时间复杂度为O(n)的exp-3.c程序:
```c
#include <stdio.h>
int main() {
int n;
long long sum = 0, factorial = 1;
printf("请输入一个正整数n:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
factorial *= i;
sum += factorial;
}
printf("1! + 2! + ... + %d! = %lld\n", n, sum);
return 0;
}
```
首先,我们定义了变量n表示输入的正整数,sum表示1!+2!+……n!的和,factorial表示当前数字的阶乘。
然后,我们通过for循环遍历1到n,计算每个数字的阶乘并将其加到sum中。
由于for循环只遍历了n次,因此算法的时间复杂度为O(n)。
最后,我们输出1!+2!+……n!的和。
编写一个程序exp-3.c。对于给定的正整数n,求1!+2!+……n!,在程序中要给出时间复杂度为O(n)的算法程序。
以下是时间复杂度为O(n)的算法程序:
```c
#include <stdio.h>
int main() {
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
int sum = 0, fact = 1;
for (int i = 1; i <= n; i++) {
fact *= i;
sum += fact;
}
printf("1!+2!+...+%d! = %d\n", n, sum);
return 0;
}
```
该程序使用一个循环来计算1!+2!+...+n!,循环变量i从1到n,每次乘以i的阶乘,然后加到sum中。由于循环执行次数等于n,因此时间复杂度为O(n)。