用Java打印菱形(奇数行菱形)

打印出如下图案(菱形)   
     *   
   ***   
 *****   
*******   
 *****   
   ***   
    *   

分析:

具有最多*的一行是第四行,且有7个。

将菱形看成有二个三角形组成的,上4行(第一个三角形),下3行(第二个三角形)

第一行:一个*,相对于第四行来说,前面需要三个空格

第二行:三个*,相对于第四行来说,前面需要二个空格

............依次类推

先实现上4行(第一个三角形的打印),代码如下:

//实现上三角形
        for (int i =1; i <=4 ; i++) {
            //打印空格
            for (int j = 1; j <=4-i ; j++) {
                System.out.print(" ");
            }
            //打印*号
            for (int k = 1; k <=2*i-1 ; k++) {
                System.out.print("*");
            }
            //打印完一行,进行换行
            System.out.println();
        }

实现结果:

接下来分析下3行(第二个三角形)

第一行 :一个空格,相对于上三角形的第四行来说,需要打印5个*

第二行:二个空格,相对于上三角形的第四行来说,需要打印3个*

第三行:三个空格,相对于上三角形的第四行来说,需要打印1个*

先实现下3行(第二个三角形的打印),代码如下:

//实现下三角形
        for (int i = 3; i>=1; i--) {
            for (int j = 1; j <=4-i ; j++) {
                System.out.print(" ");
            }
            for (int k = 1; k <=2*i-1 ; k++) {
                System.out.print("*");
            }
            //打印完一行,进行换行
            System.out.println();
        }

实现结果

完整实现打印菱形代码如下:

 //实现上三角形
        for (int i =1; i <=4 ; i++) {
            //打印空格
            for (int j = 1; j <=4-i ; j++) {
                System.out.print(" ");
            }
            //打印*号
            for (int k = 1; k <=2*i-1 ; k++) {
                System.out.print("*");
            }
            //打印完一行,进行换行
            System.out.println();
        }
        //实现下三角形
        for (int i = 3; i>=1; i--) {
            for (int j = 1; j <=4-i ; j++) {
                System.out.print(" ");
            }
            for (int k = 1; k <=2*i-1 ; k++) {
                System.out.print("*");
            }
            //打印完一行,进行换行
            System.out.println();
        }

结果展示:

  • 13
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值