Java金字塔、空心金字塔、空心菱形

Java金字塔

java 复制代码
public class TestDemo01 {
    public static void main(String[] args){
        //第一个for用于每行输出 从i=1开始到i<=5,总共5行
        for(int i=1;i<=5;i++){

            //每行前缀空格,这个for用于表示每行输出*前面的空格
            //从上面规律可得,每行输出的空格数为总层数,可以用5-i表示
            for(int k=1;k<=5-i;k++){
                System.out.print(" ");
            }
            //每行*号,可以发现每行输出的*为当前层*2-1,所以用2*i-1表示
            for(int j=1;j<=2*i-1;j++){
                System.out.print("*");
            }
            System.out.println();
        }

    }
}

空心金字塔

java 复制代码
public class TestDemo01 {
    public static void main(String[] args){
       //行数
        for(int i=1;i<=5;i++){

            //每行前缀空格
            for(int k=1;k<=5-i;k++){
                System.out.print(" ");
            }
            //每行*号
            for(int j=1;j<=2*i-1;j++){
                //使用if做判断j==1时是首输出*,j==2*i-1为尾,i==5表示最后一行
                    if(j==1||j==2*i-1||i==5){
                        System.out.print("*");
                    }else{
                        System.out.print(" ");
                    }
            }

            System.out.println();
        }
}

空心菱形

相信有了以上基础后,写一个空心菱形不难,本质上就是将正空心金字塔倒过来,然后2个金字塔拼接起来,具体代码如下

java 复制代码
public class TestDemo01 {
    public static void main(String[] args){
       //行数
        for(int i=1;i<=5;i++){

            //每行前缀空格
            for(int k=1;k<=5-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();
        }

       for(int i = 1,j=5;i<=5;i++,j--){

            for (int k=1;k<i;k++){
                System.out.print(" ");
            }

            for(int z=1;z<=2*j-1;z++){
                if(z==1||z==(2*j-1)){
                    System.out.print("*");
                }else{
                    System.out.print(" ");
                }

            }
            System.out.println();
        }

    }
}
相关推荐
JIngJaneIL1 天前
农产品电商|基于SprinBoot+vue的农产品电商系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·毕设·农产品电商系统
JienDa1 天前
JienDa聊PHP:电商实战中主流PHP框架的协同策略与架构优化
开发语言·架构·php
陈奕昆1 天前
n8n实战营Day1课时3:高频节点解析+Webhook表单同步Excel实操
人工智能·python·n8n
w***74171 天前
Nginx—Rewrite
java·数据库·nginx
切糕师学AI1 天前
Spring 是什么?
java·后端·spring
星释1 天前
Rust 练习册 97:Run-Length Encoding 压缩算法
java·linux·rust
Tongfront1 天前
前端通用submit方法
开发语言·前端·javascript·react
爱笑的源码基地1 天前
医院随访管理系统源码 患者随访管理系统源码 智能随访系统源码 出院随访系统源码,基于Java+Vue前后端分离架构
java·spring boot·源码·二次开发·源代码管理·随访系统·医院随访
JienDa1 天前
JienDa聊PHP:起卦、卜卦平台实战中PHP框架的协同架构方略
开发语言·架构·php
Le1Yu1 天前
订单优化(状态机、分库分表、覆盖索引、缓存优化查询)
java·开发语言·数据库