for循環輸出菱形的形狀【java】
阿新 • • 發佈:2017-08-05
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 + 星星數:317 第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 + 星星數:137 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】