gpt4 book ai didi

java - 这个递归函数有什么作用?

转载 作者:行者123 更新时间:2023-11-29 07:14:04 25 4
gpt4 key购买 nike

这个函数有什么作用?您如何评价它?

如何追溯?如何理解递归方法?

我就是看不懂递归,而且马上就要考试了,我知道要想看懂递归,必须先看懂递归。

但是我不会写一个稍微复杂的递归方法,谁能帮我用最简单的英文单词。

public class BalancedStrings {

public static void printBalanced(String prefix, int a, int b) {
if (a > 0)
printBalanced(prefix + "a", a - 1, b);
if (b > 0)
printBalanced(prefix + "b", a, b - 1);
if (a == 0 && b == 0)
System.out.println(prefix);
}

public static void printBalanced(int n) {
if (n % 2 == 0) {
printBalanced("", n / 2, n / 2);
}
}

public static void main(String[] args) {
printBalanced(4);
}
}

最佳答案

printBalanced() 的调用是递归调用。识别递归的方法是在函数调用自身时。使用树绘制时最好理解递归:

enter image description here

树的分支将继续创建更多函数,直到满足结束条件,在本例中为a == 0 && b == 0。您提供的函数看起来像是在递归地打印与指定数量的“a”和“b”字符连接的字符串“prefix”。当变量 ab 达到 0 时,递归停止并使用 System.out.println(prefix) 打印结果;

在主函数中,您将整数 4 传递给 printBalanced(int n),它调用 printBalanced(String prefix, int a, int b),参数如下这:printBalanced("",2,2);

整体结果是前缀连接了 a 和 b 的平衡数

关于java - 这个递归函数有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11264367/

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