for循環輸出樹木的形狀【java】
阿新 • • 發佈:2017-08-05
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】