我正在完成在线Java课程,并且负责创建圣诞树,该圣诞树可以根据确定树高的用户输入来形成。我无法在打印圣诞树的方法中打印任何内容。我只能调用其他方法为我做打印。输入只是树本身的高度,而不是树的高度。无论高度如何,底座尺寸均相同。

我尝试了多种不同的方法来获得所需的结果,但是以下代码是我最近得到的。结果是树的弯曲版本,但是它很接近...我只是不知道自己在做什么错。

public static void printStars(int amount) {
    int i = 0;

    while (i < amount) {
        System.out.print("*");
        i++;
    }

    System.out.println("");
}

public static void printWhitespaces(int amount) {
    int i = 0;

    while (i < amount) {
        System.out.print(" ");
        i++;
    }
}

public static void xmasTree(int height) {
    int i = 1; // Stars incrementer

    while (i <= height) {
        int s = (height - i) / 2;
        printWhitespaces(s);
        printStars(i);

        i++;
    }
}


结果:

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

Desired result:

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

最佳答案

我没有运行此程序,但希望没问题;)

public static void printStars(int amount) {
    while (--amount >= 0)
        System.out.print("*");

    System.out.println("");
}

public static void printWhitespaces(int amount) {
    while (--amount >= 0)
        System.out.print(" ");
}

public static void xmasTree(int height) {
    int i = 1; // Stars incrementer

    // crown
    while (i <= height) {
        printWhitespaces(height - i);
        printStars(2*i-1);

        i++;
    }

    // trunk
    i = 2;
    while (--i>=0) {
        printWhitespaces(height - 2);
        printStars(3);
    }
}

07-24 09:33