1. 程式人生 > >for循環輸出樹木的形狀【java】

for循環輸出樹木的形狀【java】

com println -- ima 分析 oid 輸出 alt 循環

使用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】