C语言编写函数来求输入数字的阶乘
时间: 2025-01-02 12:45:39 浏览: 10
在C语言中,我们可以编写一个递归函数来计算输入数字的阶乘。阶乘是指一个正整数n的所有小于及等于它的正整数的积。例如,5的阶乘(记作5!)就是5 * 4 * 3 * 2 * 1。
下面是C语言的一个函数示例:
```c
#include <stdio.h>
#include <math.h> // 需要此头文件来处理大整数,因为阶乘的结果可能很大
unsigned long long factorial(int n) {
if (n == 0 || n == 1) { // 阶乘的基本情况,0和1的阶乘都是1
return 1;
} else {
return n * factorial(n - 1); // 递归调用,计算n-1的阶乘再乘以n
}
}
int main() {
int num;
printf("请输入一个非负整数: ");
scanf("%d", &num);
if (num < 0) {
printf("错误: 阶乘只对非负整数有意义。\n");
} else {
unsigned long long fact = factorial(num);
printf("%d 的阶乘是: %llu\n", num, fact);
}
return 0;
}
```
请注意,虽然这个函数可以处理小的整数,但如果需要处理较大的数值,可能需要引入更大容量的库或者自定义大整数处理函数,因为C标准库的`unsigned long long`在某些平台上可能会溢出。
阅读全文