C语言求1到20的阶乘和
以下是用C语言计算1到20的阶乘和的代码:

(图片来源网络,侵删)
#include <stdio.h>
int main() {
long long sum = 0; // 用于存储阶乘和
long long factorial = 1; // 用于存储当前阶乘值
for (int i = 1; i <= 20; i++) {
factorial *= i; // 计算i的阶乘
sum += factorial; // 将当前阶乘加到总和中
}
printf("1到20的阶乘和为: %lld\n", sum);
return 0;
}
代码说明:
-
使用
long long类型来存储阶乘和,因为20!的结果非常大(2432902008176640000),普通的int或long类型会溢出。 -
变量
factorial用于计算当前数字的阶乘,初始值为1。 -
在循环中:
- 每次迭代计算当前数字i的阶乘(factorial *= i)
- 将当前阶乘值加到总和中(sum += factorial)
-
最后输出1到20的阶乘和。
注意事项:
- 20!的结果是2432902008176640000,这是
long long类型能表示的最大范围之内。 - 如果计算更大的阶乘(如21!),则需要使用更大的数据类型(如
unsigned long long)或大数库。
输出结果:
程序运行后将输出:
1到20的阶乘和为: 2561327494111820313
