//打印金字塔
//打印空心金字塔
//打印空心菱形
public class Pyramid01 {
public static void main(String[] args) {
//化繁为简,先死后活
//先定义打印 5 层的
//1.先打印5层矩形int j = 1; j <= 5; j++
//2.后打印5层半个三角形int j = 1; j <= i; j++
//3.再打印5层三角形int j = 1; j <= (2*i-1); j++
//4.再调整三角形里面(*)的位置(到这金字塔打印完毕)
//5.将金字塔调整为空心的
//6.将金字塔的层数定义为变量
//7.将空心金字塔变为空心菱形(如果将金字塔变菱形 需要将层数 layer*2-1)
int layer = 6;//金字塔层数
int floor = layer * 2 - 1;//菱形层数
for (int i = 1; i <= floor; i++) {
if (i > 0 && i <= layer){//前半部分
//先打印完一行的空格,然后再打印一行的*,最后再换行
for (int h = 1; h <= (layer-i); h++) {//打印金字塔最后一行不用空格
System.out.print(" ");//打印空格,调整位置
}
if (i == 1){//如果是第一行或者是最后一行就全部打出
System.out.print("*");//打印*
}else{//中间几行
for (int j = 1; j <= (2*i-1); j++) {//如果不是空心需要打印的*个数2*i-1
if (j == 1 || j== (2*i-1)){//判断是不是第一个或者最后一个*
System.out.print("*");
}else{//不是第一个或者最后一个*,就将*转换为空格
System.out.print(" ");
}
}
}
}
if(i > layer && i <=floor){//后半部分
//先打印完一行的空格,然后再打印一行的*,最后再换行
for (int h = 1; h <= (i - layer); h++) {//打印金字塔最后一行不用空格
System.out.print(" ");//打印空格,调整位置
}
if (i == floor){//如果是最后一行就全部打出
System.out.print("*");//打印*
}else{//中间几行
for (int j = 1; j <= 2*(floor-i)+1; j++) {//如果不是空心需要打印的*个数2*(floor-i)+1
if (j == 1 || j== 2*(floor-i)+1){//判断是不是第一个或者最后一个*
System.out.print("*");
}else{//不是第一个或者最后一个*,就将*转换为空格
System.out.print(" ");
}
}
}
}
System.out.println();//每打印完一层换行
}
}
}
java打印空心菱形
最新推荐文章于 2023-07-30 14:42:14 发布