语言:Java
我遇到了应该产生以下模式的递归方法的问题:
Zigzag 1
*
Zigzag 2
*
**
*
Zigzag 3
*
***
*
Zigzag 4
*
**
*
****
*
**
*
Zigzag 6
*
***
*
******
*
***
*
Zigzag 8
*
**
*
****
*
**
*
********
*
**
*
****
*
**
*
这是我到目前为止所拥有的:
public void printZigZag(int size, int indent) {
if(size > 0 && indent >= 0){
String temp = "";
for(int i = 0; i < indent; i++){
temp += " ";
}
for(int i = 0; i < size; i++){
temp += "*";
}
printZigZag(size/2, indent);
/* Example of something I've tried...
if(size != 1){
indent++;
}
if(size % 2 != 0){
indent = temp.length() - 2;
} else {
indent = temp.length() / 2;
}
*/
System.out.println(temp);
printZigZag(size/2, ++indent);
}
}
但是该代码会产生这个(其中 Zigzag # 是大小):
Zigzag 1
*
ZigZag 2
*
**
*
ZigZag 3
*
***
*
ZigZag 4
*
**
*
****
*
**
*
ZigZag 6
*
***
*
******
*
***
*
ZigZag 8
*
**
*
****
*
**
*
********
*
**
*
****
*
**
*
我已经为此工作了几天,各种不同的 if 和语句顺序,无法弄清楚我哪里出错了。
非常感谢可以提供的任何帮助,在此先感谢您。
PS。很抱歉这个巨大的帖子。