我正在完成在线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);
}
}