求1+2!+3!+.+n!的和。 输入 正整数n(n=10)+ 出 1+2!+S!+…+n!的和(结果为整数形式)
时间: 2023-11-17 18:00:26 浏览: 133
java基础编程:求1+2!+3!+...的前n项的和
使用迭代法和递归函数两种方法都可以求1+2!+3!+...+n!的和。
方法一:使用迭代法计算阶乘方法求和(其中n的值在1~20之间)
```c
#include<stdio.h>
int fact(int n);
int main() {
int i,n;
long sum=0;
printf("输入n(n>0)\n");
scanf("%d",&n);
for(i=1;i<=n;i++) {
sum+=fact(i);
}
printf("sum=%ld\n",sum);
}
/*函数功能:用迭代法计算整型变量n的阶乘*/
int fact(int n) {
int i;
long result=1;
for(i=2;i<=n;i++) {
result*=i;
}
return result;
}
```
方法二:使用递归函数调用阶乘方法求和(其中n的值在1~40之间)
```python
def jie(n):
if n == 1:
return 1
else:
return n*jie(n-1)
n = int(input())
sum = 0
if n < 1 or n > 40:
print("请重新输入数据")
else:
for i in range(1,n+1):
sum += jie(i)
print(sum)
```
阅读全文