c语言阶乘函数
时间: 2023-11-27 13:03:09 浏览: 39
以下是一个计算阶乘的C语言函数:
```c
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n-1);
}
}
```
这个函数使用递归来计算阶乘。当传入的参数为0时,返回1,否则返回n乘以n-1的阶乘。需要注意的是,当n很大时,可能会导致栈溢出,因此建议使用循环的方式来计算阶乘。
相关问题
c语言自定义函数阶乘
以下是两种C语言自定义函数阶乘的例子:
1.使用for循环计算阶乘
```c
#include <stdio.h>
double Factorial(int n) {
double sum = 1;
for (int i = 1; i <= n; i++) {
sum *= i;
}
return sum;
}
int main() {
int x = 4;
printf("%g", Factorial(x)); // 输出:24
return 0;
}
```
2.使用递归方法计算阶乘
```c
#include <stdio.h>
double fac(int n) {
if (n == 1) {
return 1;
} else {
return n * fac(n - 1);
}
}
int main() {
int x = 4;
printf("%g", fac(x)); // 输出:24
return 0;
}
```
c语言用函数实现阶乘
以下是两种C语言用函数实现阶乘的例子:
1. 使用递归函数实现阶乘
```c
#include <stdio.h>
long factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n-1);
}
}
int main() {
int n;
printf("Input n:");
scanf("%d", &n);
printf("%d!=%ld\n", n, factorial(n));
return 0;
}
```
2. 使用循环函数实现阶乘
```c
#include <stdio.h>
long factorial(int n) {
long pro = 1;
for (int i = 1; i <= n; i++) {
pro *= i;
}
return pro;
}
int main() {
int n;
printf("Input n:");
scanf("%d", &n);
printf("%d!=%ld\n", n, factorial(n));
return 0;
}
```