完成一个递归求阶乘的函数,在主函数调用该函数求6的阶乘并手动模拟
时间: 2024-09-27 10:07:07 浏览: 10
你可以编写一个简单的递归函数来计算阶乘,阶乘是一个数的所有小于及等于它的正整数的积。以下是 C 语言的例子:
```c
#include <stdio.h>
// 递归函数计算阶乘
unsigned long long factorial(int n) {
if (n == 0 || n == 1) { // 阶乘的基本情况,0和1的阶乘都是1
return 1;
} else {
return n * factorial(n - 1); // 递归调用,将n乘以前面的阶乘结果
}
}
int main() {
int num = 6;
unsigned long long result = factorial(num);
printf("The factorial of %d is %llu\n", num, result);
// 手动模拟递归过程(仅为了理解递归过程)
for (int i = num; i >= 1; i--) {
printf("%d * ", i);
if (i == 1) {
printf("1\n"); // 当i等于1时结束打印
} else {
result *= i;
printf("%llu ", result);
}
}
return 0;
}
```
在这个例子中,`factorial()` 函数会一直递归下去直到达到基本情况(n=0或n=1),然后逐层返回结果,最终得到6的阶乘。手动模拟部分则是显示了递归调用的过程。