我一直在使用Java程序练习模式,直到我得到如下所示的盒星型模式中的高级框,其中N = 7作为最大7×7星盒,然后是5×5、3x3 n 1×1星盒
*******
* * * *
*** * *
* * *
***** *
* *
*******
我尝试过
for (int i = 1; i <= 7; i++) {
if (i == 1 || i == 7) {
for (int j = 1; j <= 7; j++) {
System.out.print("*");
}
System.out.println();
} else {
for (int j = 1; j <= 7; j++) {
if (i % 2 == 0) {
if (j % 2 != 0) // for even rows ???
System.out.print("*");
else
System.out.print(" ");
} else {
if (j <= i)
System.out.print("*");
else {
if (j % 2 != 0)
System.out.print("*");
else
System.out.print(" ");
}
}
}
System.out.println()
}}
缺少使偶数行在空格后打印星星的条件
答案 0 :(得分:1)
解决问题的一种方法是研究*
的位置。在这些位置打印*
,并在其他位置打印空格。在这种情况下,*
位于三组中,如下所示:
红色组由所有*
组成,其中行或列均为1。
在绿色组中,当列大于行且列为奇数时,将打印*
。
在蓝色组中,当列小于或等于行且行为奇数时,将打印*
。
请记住,代码如下所示:
for (int row = 1; row <= 7; row++) {
for (int col = 1; col <= 7; col++) {
if (row == 1 || col == 1) // red group
System.out.print("*");
else if (col > row && col % 2) // green group
System.out.print("*");
else if (col <= row && row % 2) // blue group
System.out.print("*");
else
System.out.print(" ");
}
System.out.println();
}