在C语言中使用while循环求1到20的阶乘的和
时间: 2024-12-13 11:18:53 浏览: 11
在C语言中,可以使用while循环结合递归或者循环结构计算1到20的阶乘之和。这里以循环结构为例,因为直接用循环更直观且效率更高:
```c
#include <stdio.h>
unsigned long long factorial_sum(int n) {
unsigned long long sum = 0;
int i = 1;
while (i <= n) {
// 计算当前数的阶乘并加到总和上
sum += factorial(i);
i++;
}
return sum;
}
unsigned long long factorial(int num) {
if (num == 0 || num == 1) {
return 1; // 阶乘的基础情况,0和1的阶乘都是1
} else {
return num * factorial(num - 1); // 递归调用,计算阶乘
}
}
int main() {
int limit = 20;
unsigned long long result = factorial_sum(limit);
printf("The sum of factorials from 1 to %d is: %llu\n", limit, result);
return 0;
}
```
在这个程序中,`factorial_sum`函数负责计算阶乘和,而`factorial`是一个辅助函数,用于递归地计算单个数的阶乘。
阅读全文