def aa1(n): if n == 1: return 1 else: aa2(n) def aa2(n): m = n-1 aa1(m)

def aa1(n): if n == 1: return 1 else: aa2(n) def aa2(n): m = n-1 aa1(m)
1 ws52001 Jun 10, 2022 算的,递归函数的定义就是直接或者间接调用函数本身。你这个算是间接调用。 |
2 Jooooooooo Jun 10, 2022 算, 你把 aa2 展开放到 aa1 里就更直观了. |
3 ychost Jun 10, 2022 这是循环依赖,不过也算递归 |
4 LLaMA2 Jun 10, 2022 ``` function aa1(n: number) { while (n === 1) { return 1; } aa1(n - 1); } ``` 你写的不就是这个 |
5 breeza Jun 10, 2022 这个叫互递归 |
6 hello2090 Jun 10, 2022 via iPhone 你这不就 aa1(n - 1)么 |
8 IMXT Jun 10, 2022 via Android 尾递归就不会爆栈了,前提是编译器实现了尾递归优化 |
9 necomancer Jun 10, 2022 是不是少了 return ?(在 else 和 aa2 里) |
11 xiayushengfan Jun 11, 2022 禁止套娃 |
12 anshigm Jun 11, 2022 逻辑上不就是这样? while (n !=1 ) n -=1 return 1 一个简单的循环能搞定为什么要用这么复杂的递归?这么写有什么深意吗? |
14 aijam Jun 11, 2022 mutual recursion |