空心金字塔示例

在这里插入代码片package Chen.cjw.laohan;

public class 空心金字塔 {
    /* 打印半个金字塔
    *      //第 1 层 有 1 个*
    **     //第 2 层 有 2 个*
    ***    //第 3 层 有 3 个*
    ****   //第 4 层 有 4 个*
    *****  //第 5 层 有 5 个*

    打印整个金字塔
     *     //第 1 层 有 1 个* 2 * 1 -1 有 4=(总层数-1)个空格
    ***    //第 2 层 有 3 个* 2 * 2 -1 有 3=(总层数-2)个空格
   *****   //第 3 层 有 5 个* 2 * 3 -1 有 2=(总层数-3)个空格
  *******  //第 4 层 有 7 个* 2 * 4 -1 有 1=(总层数-4)个空格
 ********* //第 5 层 有 9 个* 2 * 5 -1 有 0=(总层数-5)个空格

 //代码:(  public static void main(String[] args) {
 //        for (int i = 1; i <=5; i++) {
 //            for (int k =0 ; k<=5-i;k++){
 //                System.out.print(" ");
 //            }
 //            for (int j =1; j <=2*i-1;j++) {
 //                System.out.print("*");
 //            }
 //            System.out.println("");
 //        }
 //    })

     4. 打印空心的金字塔 [最难的]
     *      //第 1 层 有 1 个* 当前行的第一个位置是*,最后一个位置也是*
    * *     //第 2 层 有 2 个* 当前行的第一个位置是*,最后一个位置也是*
   *   *    //第 3 层 有 2 个* 当前行的第一个位置是*,最后一个位置也是*
  *     *   //第 4 层 有 2 个* 当前行的第一个位置是*,最后一个位置也是*
 *********  //第 5 层 有 9 个* 全部输出*
     先死后活
      5 层数做成变量 int totalLevel = 5; //小伙伴 技术到位,就可以很快的把代码写出
 */

    //空心金字塔:
    /*public static void main(String[] args) {
        int totalLevel =20;//层数
        for (int i = 1; i <=totalLevel; i++) {//i 表示层数
            for (int k =0 ; k<=totalLevel-i;k++){//在输出*之前,还有输出 对应空格 = 总层数-当前层
                System.out.print(" ");
            }
            for (int j = 1; j <=2*i-1;j++) {//控制打印每层的*个数
                if (j==1||j==2*i-1||i==totalLevel) {//当前行的第一个位置是*,最后一个位置也是*, 最后一层全部 *
                    System.out.print("*");
                }else {
                    System.out.print(" ");//其他情况输出空格
                }
            }
            System.out.println("");//每打印完一层的*后,就换行 println 本身会换行
        }
    }
     */
    public static void main(String[] args) {
        int totalLevel =5;//层数
        for (int i = 1; i <=totalLevel; i++) {//i 表示层数
            for (int k =0 ; k<=totalLevel-i;k++){//在输出*之前,还有输出 对应空格 = 总层数-当前层
                System.out.print(" ");
            }
            for (int j = 1; j <=2*i-1;j++) {//控制打印每层的*个数
                if (j==1||j==2*i-1) {//当前行的第一个位置是*,最后一个位置也是*, 最后一层全部 *
                    System.out.print("*");
                }else {
                    System.out.print(" ");//其他情况输出空格
                }
            }
            System.out.println("");//每打印完一层的*后,就换行 println 本身会换行
        }
    }
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值