Java 递归-解释代码如何工作(绘图)
我写这段代码,并试图理解所有执行的活动(递归)。 有人能帮我画一棵树来纪念发生的事吗Java 递归-解释代码如何工作(绘图),java,recursion,Java,Recursion,我写这段代码,并试图理解所有执行的活动(递归)。 有人能帮我画一棵树来纪念发生的事吗 public static String row(int n) { if (n == 1) return "1"; else return row(n - 1) + " " + n; } public static String triangle(int a, int b) { if (a == b) return row(b);
public static String row(int n) {
if (n == 1)
return "1";
else
return row(n - 1) + " " + n;
}
public static String triangle(int a, int b) {
if (a == b)
return row(b);
else
return row(a) + "\n" + triangle(a + 1, b);
}
}
感谢您的
行方法:
public static String row(int n) {
if (n == 1) {
return "1";
} else {
return row(n - 1) + " " + n;
}
}
返回一个字符串,该字符串包含由空格分隔的从1到n的所有数字。例如,行(4)
将返回字符串“1 2 3 4”
您的三角形
方法为三角形的每一行打印一行
public static String triangle(int a, int b) {
if (a == b) {
return row(b);
} else {
return row(a) + "\n" + triangle(a + 1, b);
}
}
为从a
到b
的每一行步骤创建一行三角形
e、 g.三角形(4,6)
将打印:
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
代码的工作原理
row
方法,如果给定值1
将返回“1”。任何其他值都将产生一个字符串,该字符串相当于行(n-1)
,后跟n
,因此本质上它将返回1 2 3。。。n
triangle
方法返回一个字符串,该字符串试图用数字绘制三角形。因此三角形(4,6)
返回第(4)行+三角形(5,6)
它返回第(5)行+三角形(6,6)
它将返回第(6)行
。因此,最终结果将是:
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
你写了你不懂的代码?现在,这段代码创建了一个字符串。尝试运行代码并打印该操作的结果?递归是一个使用不同输入参数调用自身的函数。还必须有一个终止条件,以便函数不会无限循环。基于此,你应该能够计算出剩下的部分。