题目
打印空心菱形(用 * 与空格)
思路
上半部类似金字塔,下半部镜像;每行若 col 在左右边界则 * 否则空格,中心线单独处理。
解题分析
空心图只在边界放 *,内部空格。先画上半再镜像下半,或算每行 star 的列区间。行数为奇数时对称轴一行只有一个 *。
完整程序
import java.io.*;
public class Main {
public static void main(String[] args) {
int n = 5;
int mid = n / 2;
for (int i = 0; i < n; i++) {
int dist = i <= mid ? mid - i : i - mid;
for (int s = 0; s < dist; s++) System.out.print(' ');
for (int j = dist; j < n - dist; j++)
System.out.print(j == dist || j == n - dist - 1 ? '*' : ' ');
System.out.println();
}
}
}
运行示例
输出:
*
* *
* *
* *
*