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

for循環輸出菱形的形狀【java】

tree string src 代碼 enum println alt art 空格

使用for循環語句輸出以下“菱形”效果:

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

代碼  

 1 /*
 2     *
 3    ***
 4   *****
 5  *******
 6 *********
 7  ******* 
 8   *****
 9    ***
10     *
11 
12 分析:
13     - 上層(共5層)
14         每層構成:每層每層空格數+每層星星數
15             第1層 -- 空格數:4 + 星星數:1
16             第2層 -- 空格數:3 + 星星數:3
17 第3層 -- 空格數:2 + 星星數:5 18 第4層 -- 空格數:1 + 星星數:7 19 第5層 -- 空格數:0 + 星星數:9 20 21 分析: 22 第1層 -- 空格數:4(= 5-1) + 星星數:1(= 2*1-1) 23 第2層 -- 空格數:3(= 5-2) + 星星數:3(= 2*2-1) 24 第3層 -- 空格數:2(= 5-3) + 星星數:5(= 2*3-1) 25 第4層 -- 空格數:1(= 5-4) + 星星數:7(= 2*4-1)
26 第5層 -- 空格數:0(= 5-5) + 星星數:9(= 2*5-1) 27 28 推理:(上層共 layer 層) 29 第i層 -- (空格數 = layer-i) + (星星數 = 2*i-1) 30 31 32 - 下層(下層共 layer-1 層) 33 第1層 -- 空格數:1 + 星星數:7 34 第2層 -- 空格數:2 + 星星數:5 35 第3層 -- 空格數:3 + 星星數:3 36 第4層 -- 空格數:4 + 星星數:1
37 38 分析:效果等效(共4層) 39 下層的第1層對應上層的第4層 -- 空格數:1 + 星星數:7 40 下層的第2層對應上層的第3層 -- 空格數:2 + 星星數:5 41 下層的第3層對應上層的第2層 -- 空格數:3 + 星星數:3 42 下層的第4層對應上層的第1層 -- 空格數:4 + 星星數:1 43 44 45 推理: 46 第i層 -- (空格數 = i) + (星星數 = 2*(layer-i)-1) 47 */ 48 49 50 public class StarTree 51 { 52 public static void main(String[] args){ 53 int layer = 5; 54 55 // 一、上層(顯示 layer 行) 56 for(int i=1;i<=layer;i++){ 57 58 // 1、獲取空格需要顯示數量 59 int spaceNum = layer-i; 60 for(int j=1;j<=spaceNum;j++){ // 需要打印空格的數量 61 System.out.print(" "); 62 } 63 64 // 2、獲取星星需要顯示的數量 65 int starNum = 2*i-1; 66 for(int j=1;j<=starNum;j++){ // 需要打印星星的數量 67 System.out.print("*"); 68 } 69 // 3、換行 70 System.out.println(); 71 } 72 73 // 二、下層(顯示 layer-1 行) 74 for(int i=1;i<layer;i++){ 75 76 // 1、獲取空格需要顯示數量 77 int spaceNum = i; 78 for(int j=1;j<=spaceNum;j++){ 79 System.out.print(" "); 80 } 81 // 2、獲取星星需要顯示的數量 82 int starNum = 2*(layer-i)-1; 83 for(int j=1;j<=starNum;j++){ 84 System.out.print("*"); 85 } 86 // 3、換行 87 System.out.println(); 88 89 } 90 } 91 }

代碼結果顯示:

技術分享

for循環輸出菱形的形狀【java】