怎么打印以下菱形图案?
为了便于观看将所有" (空格)"改为"$"得到如下图:
该图形是利用for循环的嵌套,将该图形分为上下两个部分得到:
上半部分:
下半部分
分析:
行号 | “$”数 | “*”数 |
一 | 4 | 1 |
二 | 3 | 3 |
三 | 2 | 5 |
四 | 1 | 7 |
五 | 0 | 9 |
由此可得:"$"数=行数-行号;"*"数=行号*2-1.
所以上半部分代码为:
//外层for循环,i是行号
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5 - i; j++) {
System.out.print("$");
}
for (int k = 1; k <= i * 2 - 1; k++) {
System.out.print("*");
}
System.out.println();
}
行号 | “$”数 | “*”数 |
一 | 1 | 7 |
二 | 2 | 5 |
三 | 3 | 3 |
四 | 4 | 1 |
经分析下半部分只需将行号反过来即可
//下半部分
for (int i = 4; i >= 1; i--) {
for (int j = 1; j <= 5 - i; j++) {
System.out.print("$");
}
for (int k = 1; k <= i * 2 - 1; k++) {
System.out.print("*");
}
System.out.println();
}
最后将"$"改为" (空格)"即可
public class RhombusDemo1 {
public static void main(String[] args) {
//上半部分
//外层for循环,i是行号
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5 - i; j++) {
System.out.print("$");
}
for (int k = 1; k <= i * 2 - 1; k++) {
System.out.print("*");
}
System.out.println();
}
//下半部分
for (int i = 4; i >= 1; i--) {
for (int j = 1; j <= 5 - i; j++) {
System.out.print("$");
}
for (int k = 1; k <= i * 2 - 1; k++) {
System.out.print("*");
}
System.out.println();
}
}
}