Scanner sc = new Scanner(System.in);
int size = sc.nextInt();
/**
* 由于菱形的对角线是菱形的对称轴所以菱形的行数一定是奇数,所以输入偶数时需要加1或减1处理使其变为奇数
*/
if (size % 2 != 0) {
for (int i = 1; i <= size; i += 2) {
for (int n = size - 2; n >= i; n -= 2) {
System.out.print(" ");// 输出左上角位置的空白部分
}
for (int m = 1; m <= i; m++) {
System.out.print("*");// 输出菱形上半部分
}
System.out.println();// 空白和星循环一次后换行
}
for (int i = size - 2; i >= 1; i -= 2) {
for (int n = size - 2; n >= i; n -= 2) {
System.out.print(" ");// 输出左下角位置的空白部分
}
for (int m = 1; m <= i; m++) {
System.out.print("*");// 输出菱形下半部分
}
System.out.println();
}
} else {
for (int i = 1; i <= size + 1; i += 2) {
for (int n = size - 1; n >= i; n -= 2) {
System.out.print(" ");
}
for (int m = 1; m <= i; m++) {
System.out.print("*");
}
System.out.println();
}
for (int i = size - 1; i >= 1; i -= 2) {
for (int n = size - 1; n >= i; n -= 2) {
System.out.print(" ");
}
for (int m = 1; m <= i; m++) {
System.out.print("*");
}
System.out.println();
}
}
/**
* 空心菱形只需在打印菱形的实体部分做一下处理即可
* 打印星时循环体等于两边的极值时再打印星否则打印空白
*/
if (size % 2 != 0) {
for (int i = 1; i <= size; i += 2) {
for (int n = size - 2; n >= i; n -= 2) {
System.out.print(" ");
}
for (int m = 1; m <= i; m++) {
if (m != 1 && m != i) {
System.out.print(" ");
} else {
System.out.print("*");
}
}
System.out.println();
}
for (int i = size - 2; i >= 1; i -= 2) {
for (int n = size - 2; n >= i; n -= 2) {
System.out.print(" ");
}
for (int m = 1; m <= i; m++) {
if (m != 1 && m != i) {
System.out.print(" ");
} else {
System.out.print("*");
}
}
System.out.println();
}
} else {
for (int i = 1; i <= size + 1; i += 2) {
for (int n = size - 1; n >= i; n -= 2) {
System.out.print(" ");
}
for (int m = 1; m <= i; m++) {
if (m != 1 && m != i) {
System.out.print(" ");
} else {
System.out.print("*");
}
}
System.out.println();
}
for (int i = size - 1; i >= 1; i -= 2) {
for (int n = size - 1; n >= i; n -= 2) {
System.out.print(" ");
}
for (int m = 1; m <= i; m++) {
if (m != 1 && m != i) {
System.out.print(" ");
} else {
System.out.print("*");
}
}
System.out.println();
}
}