利用数组打印菱形
利用数组打印菱形
答案
public class DiamondArray {
public static void main(String[] args) {
int n = 5; // 菱形上半部分的行数
// 创建一个二维字符数组,行数为 2n-1
char[][] diamond = new char[2 * n - 1][];
int rows = 2 * n - 1;
// 给每一行分配空间(行宽为 2n-1)
for (int i = 0; i < rows; i++) {
diamond[i] = new char[2 * n - 1];
}
// 填充菱形
for (int i = 0; i < rows; i++) {
for (int j = 0; j < 2 * n - 1; j++) {
int space = Math.abs(n - 1 - i); // 距离中间行的距离
if (j >= space && j < 2 * n - 1 - space) {
diamond[i][j] = '*';
} else {
diamond[i][j] = ' ';
}
}
}
// 打印菱形
for (int i = 0; i < rows; i++) {
for (int j = 0; j < diamond[i].length; j++) {
System.out.print(diamond[i][j]);
}
System.out.println();
}
}
}