有一个方法 ,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);
}
}