开发者社区> 问答> 正文

关于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();//打出一个换行
}
}
}

运行结果怎么是这样?
*
*

  • *
    *

*


展开
收起
蛮大人123 2016-06-12 17:01:01 2654 0
3 条回答
写回答
取消 提交回答
  • 要画出一个金字塔,最简单的方法是,一共八层,每层分别1,3,5,7,9,11,13,15个字符,每层都让字符串居中显示。而内部掏空在这个金字塔的基础上,除了第一层和最后一层,每层只显示第一个和最后一个字符。就完成一个内部掏空的金字塔了。
    2019-07-17 19:34:37
    赞同 展开评论 打赏
  • 阿里巴巴高级研发工程师
    麻烦补一下问题描述
    2019-07-17 19:34:37
    赞同 展开评论 打赏
  • 我说我不帅他们就打我,还说我虚伪
    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");
        }
    }

    screenshot

    2019-07-17 19:34:37
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Java 8 简明教程 立即下载
JAVA 应用排查全景图 立即下载
Java高级特性入门(二) 立即下载