关于java金字塔内部掏空的

关于java金字塔内部掏空的

问题描述:

public class taokong{
public static void main(String [] args){
int lay=7;//表示有多少层
for(int i=1;i<=lay;i++){
for(int k=1;k<=lay-i;k++){//空格规律:1行-3个,2行-2个,3行-1个,4行-0个
System.out.print(" ");
}
for(int j=1;j<=(i-1)*2+1;j++){//*打印,1-1,2-3,3-5,4-7
if(i==1||i==lay){
System.out.print("*");
}
else {if(j==1||j==(i-1)*2-1){
System.out.print("*");
}
else{
System.out.print(" ");
}
}
}
System.out.println();//打出一个换行
}
}
}
运行结果怎么是这样?:
*
*
* *

  • *
    • *
    • * *************

结果如图图片说明 怎么解决?

int lay = 7;
for(int i=1;i<=lay;i++){//输出7层 
    if(i==lay){//最后一行输出全部数据 
        for(int m=0;m<2*lay-1;m++){
            System.out.print(" ");
        }
    }else{
        for(int j=0;j<lay-i;j++){//内循环 输出 lay-i 个不换行空格 
            System.out.print(" ");
        }
        //接着输出星星
        for(int k=1;k<=2*i-1;k++){
            //掏空,除两头外其他用空格替换
            if(k==1||k==2*i-1){
                System.out.print("*");
            }else{
                System.out.print(" ");
            } 
        } 
        //一行结束换行 
        printf("\n");
    }
}

![图片说明](https://img-ask.csdn.net/upload/201604/17/1460900895_232654.png)