请设计一个递归算法,比如5的阶乘,递归算法的一个要点是要设置结束条件,否则会栈溢出
时间: 2023-05-15 21:06:43 浏览: 107
好的,这是一个经典的递归算法问题。下面是一个计算 n 的阶乘的递归算法的示例代码:
```
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
```
在这个递归算法中,我们设置了结束条件 n == 0,当 n 等于 0 时,递归停止,返回 1。否则,我们将 n 乘以 factorial(n-1),这样就可以递归计算 n 的阶乘了。
需要注意的是,如果 n 的值太大,递归深度可能会超过系统栈的最大深度,导致栈溢出。因此,在实际使用中,我们需要根据具体情况来选择递归算法或非递归算法。
阅读全文