java空心金字塔

目标为打印空心的金字塔

将此目标拆分

1. 打印半个金字塔 4层

*                    1层 1个*
**                   2层 2个*
***                 3层 3个*
****                4层 4个*

for(int i = 1; i <= 4; i++){
	for(int j = 1; j <= i; j++){
		System.out.print("*");
	}
	System.out.println();
}

2. 打印整个金字塔 4层

        *                1层 = 1*     2 * 1 - 1 空格3 总层数(4)-当前层(1) = 3
      ***               2层 = 3*     2 * 2 - 1 空格2 总层数(4)-当前层(2) = 2
     *****             3层 = 5*     2 * 3 - 1 空格1 总层数(4)-当前层(3) = 1
    *******           4层 = 7*     2 * 4 - 1 空格0 总层数(4)-当前层(4) = 0

for(int i = 1; i <= 4; i++){
	for(int k = 1; k <= 4 - i;k++){
		System.out.print(" ");
	}
	for(int j = 1; j <= 2 * i - 1; j++){
		System.out.print("*");
	}
	System.out.print();
}

3. 打印空心金字塔 4层

        *
       * *
      *   *
    *******
前3层中间是空的,只有第一行和最后一行输*,其他输空格

for(int i = 1; i <= 4; i++){
	for(int k = 1; k <= 4 - i;k++){
		System.out.print(" ");
	}
	for(int j = 1; j <= 2 * i - 1; j++){
		/*第一个位置和最后一个位置输*其他输空格
		 *最后一行全部输*
         *j==1判断是否为第一行 
         *j == 2 * i - 1判断是否为最后一行 
         *i == 4判断是否为最后一层
         */
		if(j == 1 || j == 2 * i -1 || i == 4){
			System.out.print("*");
		}else{
			System.out.print(" ");
		}
	}
	System.out.println();
}

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值