如何用C语言编程计算一个整数n的阶乘?
时间: 2024-10-27 09:03:20 浏览: 23
使用C语言求N的阶乘的方法
5星 · 资源好评率100%
在C语言中,计算一个整数n的阶乘通常会通过循环来实现,因为阶乘是一个累加过程,从1乘到n。这里有一个简单的递归和非递归的示例:
**非递归方法(使用循环):**
```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);
if (n < 0)
printf("负数没有阶乘,结果无效。\n");
else
printf("n! = %lld\n", factorial(n));
return 0;
}
```
**递归方法(虽然C并不推荐大量使用递归,但对于教学演示来说简单易懂):**
```c
#include <stdio.h>
long long factorial(int n) {
if (n == 0 || n == 1) // 阶乘的基本情况
return 1;
else
return n * factorial(n - 1); // 递归调用
}
// 同样在main函数里调用上述函数
```
在递归版本中,要注意处理边界条件(如n为0或1),因为这些情况下阶乘值就是1。
阅读全文