求1+2!+3!+...+N!的和。(N为1到10的整数) 输入 输入一个正整数N(N<=10) 输出 输出1+2!+3!+...+N!的和。
时间: 2023-11-15 15:03:22 浏览: 49
这道题目要求我们计算1+2!+3!+...+N!的和,其中N为1到10的整数。下面是三种不同的解法:
方法一:使用for循环计算阶乘和
```
int i,n;
double p=1,sum=0;
printf("请输入一个整数:");
scanf("%d",&n);
for(i=1;i<=n;i++) {
p=p*i;
sum=sum+p;
}
printf("1!+2!+...+%d!=%.0f\n",n,sum);
```
方法二:使用嵌套的for循环计算阶乘和
```
int n,i,j;
double p,sum=0;
printf("请输入一个整数:");
scanf("%d",&n);
for(i=1;i<=n;i++) //阶乘的次数
{
p=1;
for(j=1;j<=i;j++)
p=p*j;
sum=sum+p;
}
printf("sum=%.0f\n",sum) ; //结果的输出
```
方法三:使用递归函数调用阶乘方法求和
```
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)
```