我正在尝试制作一棵树,如下所示:
*
***
*****
===
我能够让树居中,但我似乎无法让树桩与树的其余部分居中。我被困在如何做到这一点,任何帮助将不胜感激! (树的树桩总是有三个相同的标志)
int height = 4;
int counter = 1;
int spaces = 20;
for (int row = 1; row <= height; row++){
for (int j = 1; j <= spaces; j++){
System.out.print(" ");
}
for (int j = 1; j <= counter; j++){
System.out.print("*");
}
System.out.println("");
counter += 2;
spaces--;
} // end of outer loop
for(int i=0; i<3; i++){
System.out.print("=");
}
答案 0 :(得分:1)
public class A {
public static void main(String[] args) {
int height = Integer.parseInt(args[0]);
int counter = 1;
int spaces = height-1;
for (int row = 1; row <= height; row++){
for (int j = 1; j <= spaces; j++){
System.out.print(" ");
}
for (int j = 1; j <= counter; j++){
System.out.print("*");
}
System.out.println("");
counter += 2;
spaces--;
} // end of outer loop
counter-=2; // length of last line
for(int i=1; i<=counter/2-1; i++){
System.out.print(" ");
}
System.out.print("===");
}
}
观察我们在第一行中留出等于(最后一行的长度)/ 2的空间并且它保持减少1.我们可以通过算术进程找到最后一行的长度。
观察= =的中间=始终打开(最后一行的长度)/ 2 + 1个字符。因此,我们必须在此之前将空格放到两个字符之间,即(长度)/ 2-1。