public void printStars(int level) {
for (int one = level; one >= 1; one--) {
for (int two = one; two <= level; two++) {
System.out.print("*");
}
System.out.println();
}
}
我正在尝试制作看起来像这样的东西:
*
***
*****
*******
*********
目前我正在将大约一半的正确图表左对齐。
我尝试合并printf,但我意识到它不起作用,因为level
的值无法转移到printf方法。我还想知道是否有办法将最长的段(底部)设置为等于(2 *级) - 1星的长度并对其应用某种格式以获得答案?
答案 0 :(得分:3)
打印适当数量的空格
public void printStars(int level) {
for (int one = level; one >= 1; one--) {
for(int k=1, k<one;k++){ // print appropriate number of spaces before
System.out.print(" ");
}
for (int two = 1; two <=2*(level-one)+1; two++) {
System.out.print("*");
}
System.out.println();
}
}
说明:
如果总共有N个级别,则最后一行没有任何空格。 =&GT; N-1级将在第一行中具有N-1,在第二行中具有N-2,所以在第(N-1)行中为1。
星数:(第一级)给出你打印的行减1,因为,最初当一个=等级(一个等级= 0)时,它的第一行,下一个(等级一) = 1,因为一个减少了。 &安培;在每行中你必须打印,2 * X +1 *'s,
答案 1 :(得分:2)
尝试以下:
public static void printStars(int level) {
for (int one = 0; one < level; one++) {
for(int space = 1; space < (level-one); space++){ //<- print leading space
System.out.print(" ");
}
//<- print stars in odd numbers e.g. 1,3,5,7
for (int two = 0; two < 2*one+1; two++) {
System.out.print("*");
}
System.out.println();
}
}