可以使用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/