【牛客题】打印圣诞树 <模拟>

今天是圣诞节,牛牛要打印一个漂亮的圣诞树送给想象中的女朋友,请你帮助他实现梦想。
输入描述:
输入圣诞树的高度h,1<=h<=100
输出描述:
输出对应的圣诞树

示例1
输入1

  *  
 * * 
* * *
  *

输入2

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

输入3

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

题解

模拟每一行,输出空格或者*,记录每一行前面需要打印的空格数 - ’:

-----*     
----* *    
-- * * *   
--*     *  
-* *   * * 
* * * * * *
     *
     *

每一个 * 的为一组,每 ** 的为一组,每 *** 的为一组,再打印树干。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        
        while(in.hasNext()) {
            int num = in.nextInt();
            // e 用于控制每一行前面的空格数
            int e = 3 * num - 1;

            for (int i = 0; i < num; i++) {
                //System.out.println("循环打印i:"+i);
                //System.out.println("e的值变化:"+e);

                //第一层
                for (int k = 0; k < e; k++) {
                    System.out.print(" ");
                    //System.out.print("-");
                }
                for (int j = 0; j < i + 1; j++) {
                    System.out.print("*");
                    System.out.print("     ");
                }
                System.out.println();

                //第二层
                e -= 1;
                for (int k = 0; k < e; k++) {
                    System.out.print(" ");
                }
                for (int j = 0; j < i + 1; j++) {
                    System.out.print("* *");
                    System.out.print("   ");
                }
                System.out.println();

                //第三层
                e -= 1;
                for (int k = 0; k < e; k++) {
                    System.out.print(" ");
                }
                for (int j = 0; j < i + 1; j++) {
                    System.out.print("* * *");
                    System.out.print(" ");
                }
                System.out.println();

                e -= 1;
            }

            //打印树干
            for (int p = 0; p < num; p++) {
                for (int q = 0; q < (3 * num - 1); q++) {
                    System.out.print(" ");
                }
                System.out.println("*");
            }
        }
    }
}

你可能感兴趣的:(力扣及OJ,#,模拟,1024程序员节,leetcode,java)