c语言用双重循环计算s=1!+2!
时间: 2024-10-29 15:18:39 浏览: 9
计算机 C语言 讲师 第5章 循环结构程序设计
在C语言中,我们可以使用双重循环来计算阶乘的累加,比如求1! + 2!。阶乘是一个数的所有小于及等于它的正整数的积,例如1的阶乘是1(1! = 1),2的阶乘是2(2! = 2 * 1)。但是请注意,直接用双重循环计算大数的阶乘效率较低,因为每次内层循环都会将结果乘以前一次的结果,这可能导致溢出。通常我们会避免这种做法,如果需要计算大的阶乘,可以考虑使用递归或者第三方库提供的函数。
下面是一个简单的双重循环示例,用于演示如何计算,但这不是实际推荐的做法:
```c
#include <stdio.h>
// 非最优计算阶乘的方式,仅适用于较小的数字
long long factorial(int n) {
if (n == 0 || n == 1) return 1;
long long result = 1;
for (int i = 1; i <= n; ++i) {
result *= i;
}
return result;
}
int main() {
int outer = 1; // 可能的最大值是1,因为2的阶乘就会溢出
int inner = 1;
long long sum = 0;
while (outer <= 2) { // 循环到2
sum += factorial(outer); // 计算当前外层循环变量的阶乘并累加
outer++;
}
printf("1! + 2! = %lld\n", sum);
return 0;
}
```
阅读全文