带有递归方法的嵌套缩进输出

时间:2017-04-06 00:20:03

标签: java recursion

我有一个使用递归方法打印出多行的赋值,每行前面有3个空格。这是所需输出的图片(http://i.imgur.com/mek2QMz.png)。

这是我到目前为止的代码:

public class Prog6d {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int input = scan.nextInt();
        System.out.println(printFactorial(input));
    }

    //Calculates the factorial
    public static int printFactorial(int input) {
        if (input == 1) {
            return 1;
        }
        System.out.println("factorial(" + input + ")");
        System.out.print("   ");
        return input*printFactorial(input-1);
    }
}

我知道如何使用for循环使空格正确显示,但我不知道如何使用递归来执行此操作。

1 个答案:

答案 0 :(得分:3)

我经常这样做。我有两个基本方法,相关:

  1. 创建一个全局字符串变量缩进,初始化为空字符串。进入该功能后,将其延长三个空格。当你离开时,将它缩短到以前的长度。
  2. 添加参数缩进。初始调用是一个空字符串;每个递归将三个空格连接到值。
  3. 在每种情况下,我只是使用缩进作为该行上印刷的第一件事。

    这能解决您的问题吗?