打印金字塔

来源:互联网 发布:linux ssh连接数限制 编辑:程序博客网 时间:2024/05/17 13:08

首先我们分解这个问题,由简到难循序渐进,先打印4层半个金字塔如图:


public class demo1 {/** * 打印半个金字塔 * * * **     * ***     * **** */public static void main(String[] args) {// TODO Auto-generated method stubint layer =4;/*  第一层==>1 *  第二层==>2 *  第三层==>3 *  第四层==>4 */for(int i=1;i<=layer;i++){for(int j=1;j<=i;j++){System.out.print("*");}System.out.println();//换行}}}
然后根据上面的在分析如何打印整个金字塔:如下图

public class demo2 {/** * @param args */public static void main(String[] args) {int layer =4;/*  第一层==>3个空格  1* *  第二层==>2个空格  3* *  第三层==>1个空格  5* *  第四层==>0个空格  7*   *  规律:2(n-1)+1 */for(int i=1;i<=layer;i++){for(int j=1;j<=layer-i;j++){System.out.print(" ");}for(int k=1;k<=(i-1)*2+1;k++){System.out.print("*");}System.out.println();}}}

3 打印镂空金字塔

与实金字塔不同的是,第一层和底层不变,其余层的第一个和最后一个有*,其余地方为空如图所示:

public class demo3 {/** * 输出镂空的金字塔 */public static void main(String[] args) {/*  第一层==>3个空格  1* *  第二层==>2个空格  3* *  第三层==>1个空格  5* *  第四层==>0个空格  7* *  ...... *  以此类推   *  规律:2(n-1)+1 */int layer = 10;for(int i=1;i<=layer;i++){for(int j=1;j<=layer-i;j++){System.out.print(" ");}for(int k=1;k<=(i-1)*2+1;k++){//判断该层是否是顶层或者是底层if(i==1 || i==layer)System.out.print("*");else{if(k==1 || k==(i-1)*2+1)System.out.print("*");elseSystem.out.print(" ");}}System.out.println();//换行}}}




原创粉丝点击