输入n,求1!+2!+3!+…+n!用C语言写
时间: 2024-11-24 15:16:58 浏览: 71
c代码-1!+2!+3!+....+n!=?
在C语言中,计算阶乘是一个常见的数学运算,然后将1!到n!相加,可以使用循环结构结合递归或者预计算的方式。这里提供一种使用循环和数组存储中间结果的方法:
```c
#include <stdio.h>
// 动态计算并返回x的阶乘
unsigned long long factorial(int x) {
if (x == 0 || x == 1)
return 1;
else
return x * factorial(x - 1);
}
int main() {
int n;
printf("请输入一个正整数n: ");
scanf("%d", &n);
// 初始化一个足够大的数组储存阶乘的结果
unsigned long long fact_table[n + 1];
fact_table[0] = 1;
// 计算并累加阶乘
for (int i = 1; i <= n; ++i) {
fact_table[i] = i * fact_table[i - 1];
// 直接累加也可以,这里分开写更清晰
// total += factorial(i);
}
unsigned long long total = 0;
for (int i = 1; i <= n; ++i)
total += fact_table[i];
printf("从1!到%d!的和是: %llu\n", n, total);
return 0;
}
```
阅读全文