【问题描述】 C语言编写程序,输入一个正整数n,输出S=21*1!+ 22*2!+ 23*3!+…+2n*n!的值。 【输入形式】 输入正整数n。 【输出形式】 输出数列之和。 【样例输入】 5 【样例输出】 4282
时间: 2023-12-03 08:04:53 浏览: 61
c代码-编写一个求阶乘的函数Fact(),然后在主函数中,计算并输出1到n之间所有数的阶乘值
5星 · 资源好评率100%
以下是一种可能的实现方式:
```c
#include <stdio.h>
int main() {
int n, i;
long long sum = 0, factorial = 1;
printf("请输入正整数n:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
factorial *= i; // 计算i的阶乘
sum += i * factorial * (1 << i); // 2的i次方等价于1左移i位
}
printf("S的值为:%lld\n", sum);
return 0;
}
```
这里使用了一个变量`sum`来记录数列之和,另外一个变量`factorial`用来计算每个数的阶乘。在循环中,先计算当前数的阶乘,然后根据题目要求计算出该数的值,并将其加到`sum`中。最后输出`sum`即可。注意,由于数列之和可能会很大,这里使用了`long long`类型来存储。
阅读全文