C语言编写函数long fun(int n)用于求n!,主函数中调用fun函数输出1!+2!+3!+…+10!的值
时间: 2024-12-12 11:19:51 浏览: 7
在C语言中,你可以使用递归的方式来编写计算阶乘的函数。这里是一个简单的`long fun(int n)`函数示例,它会计算并返回给定整数`n`的阶乘:
```c
#include <stdio.h>
// 函数声明,返回long类型的n的阶乘结果
long fun(int n);
int main() {
int i;
long result = 0;
// 遍历1到10,并调用fun()计算阶乘并将结果累加
for (i = 1; i <= 10; ++i) {
result += fun(i);
}
printf("1! + 2! + ... + 10! = %ld\n", result); // 输出结果
return 0;
}
// 计算阶乘的递归函数
long fun(int n) {
if (n == 0 || n == 1) { // 当n为0或1时,0!和1!都等于1
return 1;
} else {
// 使用递归公式:n! = n * (n - 1)!
return n * fun(n - 1);
}
}
```
这个程序首先定义了一个名为`fun`的递归函数,当输入为0或1时,返回1作为基本情况;然后在`main`函数中调用该函数累加1到10的阶乘。
注意:在C语言中,直接对`long`类型进行乘法可能会导致溢出问题,特别是当数值较大时。如果需要更安全的解决方案,可以考虑使用`long long`类型或者使用库函数如`llong_factorial`,但它并非标准C库的一部分。
阅读全文