c语言n!的递归算法
时间: 2024-10-17 11:02:24 浏览: 28
在C语言中计算阶乘(n!)通常使用递归算法来实现,因为阶乘的定义就是对于非负整数n,它的阶乘n!等于所有小于及等于n的正整数相乘的结果。以下是递归函数的基本形式:
```c
#include <stdio.h>
// 定义递归函数计算阶乘
long long factorial(int n) {
if (n == 0 || n == 1) { // 阶乘的基础情况,0和1的阶乘都是1
return 1;
} else {
return n * factorial(n - 1); // 递归调用,将问题规模缩小至n-1
}
}
int main() {
int num;
printf("请输入一个非负整数:");
scanf("%d", &num);
if (num >= 0) {
long long result = factorial(num);
printf(" %d 的阶乘是 %lld\n", num, result);
} else {
printf("输入错误,阶乘只对非负整数定义。\n");
}
return 0;
}
```
阅读全文