n的阶乘的c语言程序
时间: 2024-11-13 19:28:08 浏览: 14
在C语言中计算一个数n的阶乘(Factorial)可以使用循环结构,下面是一个简单的递归版本和非递归版本的示例:
**递归版本:**
```c
#include <stdio.h>
unsigned long long factorial(int n) {
if (n == 0 || n == 1)
return 1;
else
return n * factorial(n - 1);
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
unsigned long long result = factorial(n);
printf("结果是:%llu\n", result);
return 0;
}
```
**非递归版本(循环实现):**
```c
#include <stdio.h>
unsigned long long factorial(int n) {
unsigned long long fact = 1;
for (int i = 1; i <= n; ++i) {
fact *= i;
}
return fact;
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
unsigned long long result = factorial(n);
printf("结果是:%llu\n", result);
return 0;
}
```
这两个程序都会计算输入数字n的阶乘,但在处理大数值时,递归版本可能会导致栈溢出,因此对于大数建议使用非递归版本。
阅读全文