可以使用printStars(j)方法来返回字符串-一行j星号。我需要编写一种方法来递归地打印一个n行的星号的三角形。第一行需要一个*,第二行需要两个*,依此类推。不能使用迭代循环(因此,不可以使用while,do-while或for)。

向后执行此操作的代码非常简单:

public void printTriangle(int n) {
    if(n >= 1) {
        printStars(n));
        printTriangle(n - 1);
    }
}


到目前为止,我的代码在上面,但在下面是相反的。这是不正确的,因为在每个循环中i都重置为1。我只是不确定如何去做。我只能使用一个参数的函数。

public void printTriangle(int n) {
    int i = 1;

    if(i <= n) {
        printStars(i);
        printTriangle(i + 1);
    }
}

最佳答案

只是首先重复,然后打印该行:

public void printTriangle(int n) {
    if(n > 1) {
        printTriangle(n - 1);
    }
    System.out.println(makeStars(n));
}


因此,首先打印较小的三角形,然后附加较长的线。

关于java - 使用递归打印星号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12921263/

10-09 12:51