如何编写递归Java方法来打印数字三角形

时间:2018-03-14 21:57:34

标签: java recursion

如何使用头文件 recursiveMethod(int x,int max)编写一个递归Java方法,这样如果我用 recursiveMethod(1,10)调用它它将打印以下内容:

1
22个
333个
4444
55555个
666666个
7777777个
88888888个
999999999

我知道如何使用循环执行此操作,但无法弄清楚如何使用递归执行此操作。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

递归意味着你必须有一个基本案例。首先制定基本案例:

if (a==b)
  return;

上面的代码表示如果a == b,则递归将停止。我们将递归放入一个简单的递归方法,该方法最初提供错误的输出,但它编译并且是递归的:

public class Main {
    void recursiveMethod(int a, int b) {
        System.out.println(a);
        a++;
        if(a==b)
            return;
        else
            recursiveMethod(a, b);
    }
    public static void main(String[] args) {
        new Main().recursiveMethod(1, 10);
    }
}

现在我们可以微调代码以产生正确的输出:

public class Main {
    void recursiveMethod(int a, int b) {
        for(int i=0;i<a;i++)
          System.out.print(a);
        System.out.println();
        a++;
        if(a==b)
            return;
        else
            recursiveMethod(a, b);
    }
    public static void main(String[] args) {
        new Main().recursiveMethod(1, 10);
    }
}