用递归方法计算整数n的阶乘n!。 **输入格式要求:"%d" 提示信息:"Input n:" "n<0, data error!\n" **输出格式要求:"%d! = %ld\n" 程序运行示例如下: Input n:5 5! = 120
时间: 2023-06-20 20:04:31 浏览: 154
递归函数求n的阶乘
5星 · 资源好评率100%
以下是一种递归实现方法:
```python
#include <stdio.h>
long factorial(int n) {
if (n < 0) {
printf("n<0, data error!\n");
return -1;
} else if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n-1);
}
}
int main() {
int n;
printf("Input n:");
scanf("%d", &n);
long result = factorial(n);
if (result != -1) {
printf("%d! = %ld\n", n, result);
}
return 0;
}
```
算法思路:递归求解 n! 的方法是,如果 n=0 或 n=1,直接返回 1;否则,返回 n * (n-1)!,其中 (n-1)! 可以递归调用 factorial 函数求解。需要注意的是,如果输入的 n 小于 0,输出错误提示并返回 -1。
阅读全文