C语言 求和S=1!+2!+3!+ ……的值,当S>1e5时停止。
时间: 2024-10-22 22:15:13 浏览: 16
计算 S=1!+2!+3!+...+N! C语言代码
在C语言中,求和1! + 2! + 3! + ... 的值并设置一个上限(如100000)是一个经典的编程练习,可以利用循环结构和递归函数来实现。这里我们先简单解释一下阶乘的概念:n! 表示从1到n的所有整数相乘的结果。
以下是一个简单的C程序片段,使用while循环和递归计算阶乘:
```c
#include <stdio.h>
// 递归函数计算阶乘
unsigned long long factorial(int n) {
if (n == 1 || n == 0)
return 1;
else
return n * factorial(n - 1);
}
int main() {
unsigned long long sum = 0; // 定义总和变量
int i = 1;
while (sum <= 1e5 && factorial(i) <= 1e5) { // 当满足条件时继续累加
sum += factorial(i++);
}
printf("Sum of factorials up to a limit is: %llu\n", sum);
return 0;
}
```
这个程序会一直计算阶乘并将结果累加到`sum`中,直到达到`1e5`或者当前计算的阶乘超过此限制。最后输出累积的和。
阅读全文