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/