这是学校的作业。我无法理解我怎么可以打印递归如下:以间距递归地打印文字
This was written by call number 2.
This was written by call number 3.
This was written by call number 4.
This ALSO written by call number 4.
This ALSO written by call number 3.
This ALSO written by call number 2.
This ALSO written by call number 1.
我不知道我是否应该是说明循环与递归或是否有递归打印所有的这一种方式。此外,我将如何去逆转递归调用,以便从示例输出的4开始?
这是我目前的输出。
This was written by call number 2.
This was written by call number 3.
This was written by call number 4.
This ALSO written by call number 1.
This ALSO written by call number 2.
This ALSO written by call number 3.
This ALSO written by call number 4.
没有在执行for循环B/C我不知道如果这部分也应该是递归的间距。
我的代码:
public class Recursion {
public static void main(String[] args) {
for (int i = 2; i < 5; i++) {
System.out.println("This was written by call number " + i + ".");
}
recurse(4);
}
public static void recurse(int n) {
String temp = "";
for (int i = 0; i < n; i++) {
temp += " ";
}
if (n < 2) {
System.out.println("This ALSO written by call number " + n + ".");
}
else {
recurse(n - 1);
System.out.println(temp + "This ALSO written by call number " + n + ".");
}
}
为了使它更容易,我建议使用2个独特的功能。一个在递归调用后打印,另一个在前面打印。 – bestsss 2014-10-31 23:38:02
@MichaelJames不,不需要使用2个函数。我正在编写一个答案...... – ajb 2014-10-31 23:48:17
你可以用一个函数来完成它,然后可能需要硬编码4,或者将它作为第二个参数。通常我会写递归计数 - 只需要一个函数来增加计数器。无论哪种方式,递归函数都是大约4行代码。 – bestsss 2014-10-31 23:48:58