怎么打印以下菱形图案?
![](https://img-blog.csdnimg.cn/img_convert/9a1e023ae0fcf65646fd255242cb0ae8.png)
为了便于观看将所有” (空格)”改为”$”得到如下图:
![](https://img-blog.csdnimg.cn/img_convert/dcf08822a80bbf309cc7fb2eaa4c5a38.png)
该图形是利用for循环的嵌套,将该图形分为上下两个部分得到:
-
上半部分:
![](https://img-blog.csdnimg.cn/img_convert/3bb803ce708f954cd652b94a31b3bdc8.png)
-
下半部分
![](https://img-blog.csdnimg.cn/img_convert/7899712eb186b3c20c11f041dd7984f8.png)
分析:
![](https://img-blog.csdnimg.cn/img_convert/1f31aa7feffd8c9a8a912fa83579599a.png)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
由此可得:”$”数=行数-行号;”*”数=行号*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();
}
![](https://img-blog.csdnimg.cn/img_convert/785cd0286456abb34ed1f28fcc88da78.png)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
经分析下半部分只需将行号反过来即可
//下半部分
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();
}
}
}