使用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("*"); } } }
代码结果显示:
时间: 2024-11-02 23:37:20