求N的阶乘,写一段C语言代码
时间: 2024-10-07 18:01:12 浏览: 40
c代码-求阶乘111
当然,下面是一个简单的C语言函数,使用递归的方式求解给定整数N的阶乘:
```c
#include <stdio.h>
// 定义阶乘函数,n! 的计算
long long factorial(int n) {
if (n == 0 || n == 1) { // 当n为0或1时,阶乘结果为1
return 1;
} else {
return n * factorial(n - 1); // 递归调用自身,每次减少1直到n=1
}
}
int main() {
int N;
printf("请输入一个非负整数:");
scanf("%d", &N);
if (N < 0) {
printf("抱歉,阶乘只对非负整数有意义。\n");
} else {
long long result = factorial(N);
printf("N的阶乘结果是:%lld\n", result);
}
return 0;
}
```
这段代码首先检查输入的整数是否是非负的,然后通过递归计算阶乘,并将结果存储在 `long long` 类型变量中,以防因阶乘数值过大导致溢出。如果你需要更高效的大数阶乘计算,可以考虑使用循环或者第三方库如GMP(GNU Multiple Precision Arithmetic Library)。
阅读全文