printStars(j)可用的方法返回一个字符串 - 一行星j号.我需要编写一个递归打印n星号行的三角形的方法.第一行需要有一个*,第二行需要两个*s等.不能使用迭代循环(所以没有while,do-while或for).
向后执行的代码很简单:
public void printTriangle(int n) {
if(n >= 1) {
printStars(n));
printTriangle(n - 1);
}
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的代码对于上面的代码却反过来了.这是不正确的,因为i在每个循环中重置为1.我只是不确定如何去做.我只能使用单参数功能.
public void printTriangle(int n) {
int i = 1;
if(i <= n) {
printStars(i);
printTriangle(i + 1);
}
}
Run Code Online (Sandbox Code Playgroud)
首先复发,然后打印线:
public void printTriangle(int n) {
if(n > 1) {
printTriangle(n - 1);
}
System.out.println(makeStars(n));
}
Run Code Online (Sandbox Code Playgroud)
因此,首先打印较小的三角形,然后附加较长的行.
| 归档时间: |
|
| 查看次数: |
7757 次 |
| 最近记录: |