首页 > 代码库 > for循环输出树木的形状【java】

for循环输出树木的形状【java】

使用for循环语句输出以下“树木”效果:

    *
   ***
  *****
 *******
*********
    *
    *
    *
    *
    *

代码:

/*
    *
   ***
  *****
 *******
*********
    *
    *
    *
    *
    *

分析:
    - 树顶(共5层)
        每层构成:每层每层空格数+每层星星数
            第1层 -- 空格数:4 + 星星数:1
            第2层 -- 空格数:3 + 星星数:3
            第3层 -- 空格数:2 + 星星数:4
            第4层 -- 空格数:1 + 星星数:7
            第5层 -- 空格数:0 + 星星数:9
            
            分析:
            第1层 -- 空格数:4(= 5-1) + 星星数:1(= 2*1-1)
            第2层 -- 空格数:3(= 5-2) + 星星数:3(= 2*2-1)
            第3层 -- 空格数:2(= 5-3) + 星星数:4(= 2*3-1)
            第4层 -- 空格数:1(= 5-4) + 星星数:7(= 2*4-1)
            第5层 -- 空格数:0(= 5-5) + 星星数:9(= 2*5-1)

            推理:(共layer层树顶)
            第i层 -- 空格数 = (layer-i) + (星星数 = 2*i-1)


    - 树干(共5层)
            第1层 -- 空格数:4 + 星星数:1
            第2层 -- 空格数:4 + 星星数:1
            第3层 -- 空格数:4 + 星星数:1
            第4层 -- 空格数:4 + 星星数:1
            第5层 -- 空格数:4 + 星星数:1

            相似于第1层结果,即:
            第1层 -- 空格数:4 + 星星数:1
            类比树顶第i层结果得出:第1层 -- 空格数:(layer-1)+ 星星数:1

            分析:(共layer层树顶)
            第1层 -- 空格数:(layer-1)+ 星星数:1
            第2层 -- 空格数:(layer-1)+ 星星数:1
            第3层 -- 空格数:(layer-1)+ 星星数:1
            第4层 -- 空格数:(layer-1)+ 星星数:1
            第5层 -- 空格数:(layer-1)+ 星星数:1

*/


public class StarTree
{
    public static void main(String[] args){
        int layer = 5;

        // 一、树顶
        for(int i=1;i<=layer;i++){
             
            // 1、获取空格需要显示数量
            int spaceNum = layer-i; 
            for(int j=1;j<=spaceNum;j++){  // 需要打印空格的数量
                System.out.print(" ");
            }
            
            // 2、获取星星需要显示的数量
            int starNum = 2*i-1;
            for(int j=1;j<=starNum;j++){ // 需要打印星星的数量
                System.out.print("*");
            }
            // 3、换行
            System.out.println();
        }
        
        // 二、树干
        for(int i=1;i<=layer;i++){

            // 1、获取空格需要显示数量
            int spaceNum = layer-1;
            for(int j=1;j<=spaceNum;j++){
                System.out.print(" ");
            }
            // 2、获取星星需要显示的数量并换行
            System.out.println("*");

        }
    }
}

 代码结果显示:

技术分享

 

for循环输出树木的形状【java】