述 求1+2!+3!+...+n!的和。 输入 正整数n(n〈=10) 输出 1+2!+3!+...+n!的和 (结果为整数形式) 【样例输入】 3↙ 【样例输出】 9
时间: 2023-11-24 07:50:45 浏览: 69
以下是C语言实现1+2!+3!+...+n!的和的代码和解释:
```c
#include <stdio.h>
// 函数功能:用迭代法计算整型变量n的阶乘
int fact(int n) {
int i;
long result = 1;
for (i = 2; i <= n; i++) {
result *= i;
}
return result;
}
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); // 累加每个i的阶乘
}
printf("sum=%ld\n", sum);
return 0;
}
```
相关问题
描述 求1+2!+3!+...+n!的和。 输入 正整数n(n〈=10) 输出 1+2!+3!+...+n!的和 (结果为整数形式) 【样例输入】 3↙ 【样例输出】 9
这道题目要求我们计算1到n的阶乘之和,可以使用循环来实现。下面是代码实现:
```c
#include <stdio.h>
int main() {
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("1!+2!+...+%d!=%.0f\n", n, sum);
return 0;
}
```
上面的代码中,我们使用了两个循环,外层循环用来计算1到n的阶乘之和,内层循环用来计算每个数的阶乘。在内层循环中,我们使用了一个变量p来保存当前数的阶乘,然后将其加到sum中。最后输出结果即可。
修改后的代码如下:
```c
#include <stdio.h>
int main() {
int n, i;
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);
return 0;
}
```
这个代码中,我们只使用了一个循环,每次计算当前数的阶乘并将其加到sum中。同时,我们使用了一个变量p来保存当前数的阶乘,避免了重复计算。
描述 求1+2!+3!+...+n!的和。 输入 正整数n(n〈=10) 输出 1+2!+3!+...+n!的和 (结果为整数形式) 【样例输入】 3↙ 【样例输出】 9
以下是Python求1+2!+3!+...+n!的和的代码:
```python
n = int(input())
sum = 0
factorial = 1
for i in range(1, n+1):
factorial *= i
sum += factorial
print(sum)
```
阅读全文