所以我从java编程语言开始,我试图打印一个X高度的圣诞树。到目前为止它的工作,但如果用户输入4,它将打印4行+圣诞树树桩,意思是5.但是,我希望它是4包括树桩。到目前为止我有这个:
public class xmas {
public static void main(String[] args)
{
Scanner scan = new Scanner(in);
out.print("please enter a number: ");
int temp = scan.nextInt();
int x = (temp-1)*2 +1;
int y = x/2;
int z = 1;
for(int i=0; i<temp; i++)
{
for(int j=0; j<=y; j++)
{
out.print(" ");
}
for(int k = 0; k<z; k++)
{
out.print("*");
}
out.println();
y--;
z+=2;
}
for(int i =0; i<=x/2; i++)
{
out.print(" ");
}
out.println("*");
}
}
我不知道该怎么做。谢谢!
答案 0 :(得分:1)
在输入后尝试使用temp--
,例如:
int temp = scan.nextInt();
temp--;
或减少循环条件:
for(int i=0; i<temp-1; i++)
两种情况下的输出:
*
***
*****
*
答案 1 :(得分:0)
如果你只是从输入中减去一个,你的圣诞树应该是正确的大小。这是它的样子(使用Java样式约定):
public class ChristmasTree {
public static void main(String[] args) {
Scanner scanner = new Scanner(in);
out.print("Please enter a number: ");
int temp = scanner.nextInt() - 1; // note the `- 1`
int x = (temp - 1) * 2 + 1;
int y = x / 2;
int z = 1;
for(int i = 0; i < temp; i++) {
for(int j = 0; j <= y; j++) {
out.print(" ");
}
for(int j = 0; j < z; k++) {
out.print("*");
}
out.println();
y--;
z += 2;
}
for(int i =0; i<=x/2; i++) {
out.print(" ");
}
out.println("*");
}
}