c语言求sn=1! 2! 3! ...20!c语言求sn=1! 2! 3! ...20!
时间: 2024-12-20 18:08:00 浏览: 4
(完整word版)C语言编程练习题绝对经典!.doc
要在C语言中计算阶乘的累加和 \( S_n = 1! + 2! + 3! + \ldots + 20! \),我们可以使用循环和递归来计算每个阶乘的值,并将其累加到总和中。以下是一个示例代码:
```c
#include <stdio.h>
// 函数声明:计算阶乘
unsigned long long factorial(int n);
int main() {
int i;
unsigned long long sum = 0; // 使用unsigned long long来存储大数
// 计算1!到20!的累加和
for (i = 1; i <= 20; i++) {
sum += factorial(i);
}
printf("Sn = 1! + 2! + 3! + ... + 20! = %llu\n", sum);
return 0;
}
// 计算阶乘的函数
unsigned long long factorial(int n) {
if (n == 0 || n == 1) {
return 1;
}
unsigned long long result = 1;
for (int i = 2; i <= n; i++) {
result *= i;
}
return result;
}
```
在这个程序中:
1. `factorial` 函数用于计算给定整数 `n` 的阶乘。
2. `main` 函数中使用一个 `for` 循环来计算从 1 到 20 的阶乘,并将每个阶乘值累加到 `sum` 变量中。
3. 最后,程序打印出累加和。
注意:由于阶乘值增长得非常快,使用 `unsigned long long` 类型来存储结果,以确保能够存储较大的数值。
阅读全文