使用C语言编程求“1!+2!+…+n!”.用单循环实现
时间: 2024-11-27 07:21:27 浏览: 18
C语言编程训练:循环结构-求阶乘末尾零个数
在C语言中,要求1! + 2! + ... + n!,可以使用递归函数来计算阶乘,并通过单循环遍历从1到n的所有整数,对每个数求其阶乘并累加。这里是一个简单的单循环实现:
```c
#include <stdio.h>
// 定义阶乘函数,使用递归
unsigned long long factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n;
unsigned long long sum = 0; // 初始化总和
printf("Enter a positive integer n: ");
scanf("%d", &n);
for (int i = 1; i <= n; ++i) {
sum += factorial(i); // 累加每个数的阶乘
}
printf("The sum of factorials from 1 to %d is: %llu\n", n, sum);
return 0;
}
```
在这个程序中,`factorial()`函数负责计算阶乘,`main()`函数则通过for循环调用该函数并将结果累加。请注意,因为阶乘会随着数字增大而非常快地增长,对于较大的n,可能会超过`unsigned long long`类型的存储范围,导致溢出错误。
阅读全文