用c语言写一个函数求n的阶乘,int fact(int x)
时间: 2023-12-14 19:40:14 浏览: 520
下面是用C语言写的求n的阶乘的函数:
```c
int fact(int x)
{
if (x == 0) {
return 1;
} else {
return x * fact(x - 1);
}
}
```
该函数实现了递归的方式对n的阶乘进行计算。当x等于0时,返回1;否则,返回x乘以x-1的阶乘。
相关问题
C语言调用fact函数求n的阶乘
好的,您可以这样调用fact函数求n的阶乘:
```c
#include <stdio.h>
int fact(int n) {
if (n == 1) return 1;
return n * fact(n-1);
}
int main() {
int n = 5; // 求5的阶乘
int res = fact(n);
printf("%d的阶乘为%d\n", n, res);
return 0;
}
```
输出结果为:
```
5的阶乘为120
```
用C语言编写一个可以求任意阶乘的程序
以下是用C语言编写的可以求任意阶乘的程序:
```c
#include <stdio.h>
long long factorial(int n) {
long long result = 1;
for(int i=1; i<=n; i++) {
result *= i;
}
return result;
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
long long fact = factorial(n);
printf("%d的阶乘是:%lld", n, fact);
return 0;
}
```
在这个程序中,我们定义了一个函数`factorial`,用来计算给定整数n的阶乘。在主函数中,我们首先输入一个正整数n,然后调用`factorial`函数计算n的阶乘,并输出结果。
值得注意的是,当n比较大时,阶乘的结果可能会超出long long类型的表示范围,导致计算错误。这时需要使用高精度计算方法来处理。