做小的圣诞树

时间:2014-09-04 21:39:54

标签: java drawing row

所以我从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("*"); 
    }
}

我不知道该怎么做。谢谢!

2 个答案:

答案 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("*"); 
    }
}