使用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 }
代码结果显示:
时间: 2024-10-11 10:38:55