【发布时间】:2014-07-07 18:24:42
【问题描述】:
这就是我所拥有的。
当我在 makePattern(int size) 中省略其中一个 makePattern(size - 1) 时,我得到了下半部分。但我不知道如何获得上半部分。
public void makePattern(int size){
stringList = new ArrayList<String>();
if (size == 0){
System.out.print("");
}
else{
makePattern(size - 1);
System.out.println(dotString(size));
makePattern(size - 1);
}
}
辅助方法
public String dotString(int x){
if (x == 1){
return ".";
}
else{
return dotString(x - 1) + ".";
}
}
主要测试方法:
public static void main(String[] args) {
Pattern rP = new Pattern();
int sizePt = 5;
System.out.println();
for(int i=1; i<=sizePt; i++) {
System.out.println("pattern " + i);
rP.makePattern(i);
ArrayList<String> pattern = rP.getStringList();
for(int j = 0; j < pattern.size() ; j++)
System.out.println(pattern.get(j));
System.out.println();
}
我得到的输出:
模式 1
.
模式 2
.
..
.
模式 3
.
..
.
...
.
..
.
我想要的输出是:
即makePattern(3)
.
..
...
..
.
【问题讨论】:
-
您需要递归执行此操作吗?
-
这不是直接相关的,但应该会有所帮助:我为java初学者写了一个short debugging tutorial。关于打印的部分可能会帮助您了解代码的流程。
-
“请帮助”不是问题。 keyser 关于“学习如何调试”的非常礼貌的建议可能是您现在可以获得的最佳帮助。一般来说,有比 StackOverflow 更好的调试技术。
-
我想在没有循环的情况下递归地执行此操作。
标签: java