描述
打印空心菱形
输入
输入一个奇数,表示菱形的层数
输出
输出菱形
示例
代码
package test_1;
import java.util.Scanner;
public class T_1 {
// 打印空心菱形
public static void main(String[] args) {
// 输入菱形层数
Scanner sc = new Scanner(System.in);
int total = sc.nextInt();
sc.close(); // 关闭输入流
for (int i = 1; i <= total; i++) { // i表示层数
if (i <= (total + 1) / 2) {
// 打印菱形的上半部分和中间那一行
// 打印每行前面的空格
for (int j = (total + 1) / 2 - i; j > 0; j--) { // j是要打印的空格数
System.out.print(" ");
}
// 打印*
for (int k = 1; k <= 2 * i - 1; k++) { // (2*i-1)是要打印的*和空格的总数,k是第几个*
// 如果是每行的第一个或者最后一个字符,打印*,否则打印空格
if (k == 1 || k == 2 * i - 1) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.print("\n"); // 换行
} else {
// 打印菱形下半部分
// 打印每行前面的空格
for (int j = i - (total + 1) / 2; j > 0; j--) { // j是要打印的空格数
System.out.print(" ");
}
// 打印*
for (int k = 1; k <= 2 * (total - i) + 1; k++) { // 2*(total-i)+1是要打印的*和空格的总数,k是第几个*
// 如果是每行的第一个或者最后一个字符,打印*,否则打印空格
if (k == 1 || k == 2 * (total - i) + 1) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.print("\n"); // 换行
}
}
}
}