for循环求阶乘的和c语言
时间: 2024-10-13 11:07:15 浏览: 16
在C语言中,你可以使用for循环来计算一系列正整数的阶乘之和。阶乘是指一个非负整数n的所有小于及等于它的正整数的积,通常表示为n!。下面是一个简单的示例程序,它会计算从1到某个指定值的所有整数的阶乘,并将它们相加:
```c
#include <stdio.h>
unsigned long long factorial_sum(int n) {
unsigned long long sum = 0;
int i;
for (i = 1; i <= n; ++i) {
unsigned long long fact = 1;
// 计算阶乘
for (int j = 1; j <= i; ++j) {
fact *= j;
}
// 将当前阶乘累加到总和
sum += fact;
}
return sum;
}
int main() {
int num;
printf("请输入一个正整数:");
scanf("%d", &num);
if (num >= 0) {
unsigned long long result = factorial_sum(num);
printf("从1到%d的所有整数的阶乘之和是:%llu\n", num, result);
} else {
printf("输入错误,只能计算非负整数的阶乘。\n");
}
return 0;
}
```
在这个程序中,外层for循环遍历1到n,内层for循环用于计算每个数的阶乘。然后将每个阶乘累加到`sum`变量中。注意由于阶乘的结果可以很快变得非常大,因此这里使用了`unsigned long long`类型来存储结果。