gpt4 book ai didi

java - 在不使用迭代(循环等)的情况下理解 java 中的递归

转载 作者:行者123 更新时间:2023-12-01 22:29:48 24 4
gpt4 key购买 nike

晚上好,我现在正在尝试通过这个简单的例子来理解递归

public class exM {

public static void main(String[] args) {
System.out.print(myMethod(0)); // change the power to 1,2,3,4
}

public static String myMethod(int n){
if (n==0){
return "*";
}
else {
return myMethod(n-1) + myMethod(n-1);
}
}
}

现在很明显,如果使用 0,它会直接转到打印出来的 *。接下来,使用 1。我可以理解这是转到 else 并使用 0 返回我们的方法并打印出“*”+“*”,我们得到“**”。

我不明白的是,为什么当我们将功率更改为 2 时,它会带回 4 个星群而不是 2 个。

谁能给我解释一下这是怎么发生的?

提前致谢

最佳答案

如果你把递归写出来,你会更容易理解。

myMethod(0) = *

myMethod(1) = myMethod(0) + myMethod(0) = * + * = **

所以对于 myMethod(2):

myMethod(2) = myMethod(1) + myMethod(1) = myMethod(0) + myMethod(0) + myMethod(0) + myMethod(0) = ****

关于java - 在不使用迭代(循环等)的情况下理解 java 中的递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29986346/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com