如何使用函数调用来计算一个数n的阶乘(n!)?
时间: 2024-12-11 21:32:29 浏览: 10
在C语言中,你可以编写一个函数来计算给定整数n的阶乘。阶乘是所有小于及等于该数的正整数的乘积。这里有一个简单的递归函数实现:
```c
#include <stdio.h>
// 定义一个计算阶乘的函数,参数为整数n
long long factorial(int n) {
if (n == 0 || n == 1) { // 阶乘的基本情况(0! 和 1! 都是1)
return 1;
} else {
return n * factorial(n - 1); // 递归调用,n乘以n-1的阶乘
}
}
int main() {
int num;
printf("Enter a non-negative integer: ");
scanf("%d", &num);
if (num >= 0) {
long long result = factorial(num);
printf("The factorial of %d is %lld\n", num, result);
} else {
printf("Invalid input. Please enter a non-negative number.\n");
}
return 0;
}
```
在这个例子中,`factorial()`函数会一直递归调用自己直到n变为1或0,然后返回结果。请注意,如果n很大,可能会导致溢出,因此对于大数,可能需要使用更大范围的数据类型,如`long long`。
阅读全文