Java – 沙漏

我只是失踪了一点点.我想要的是:

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

我得到了什么

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

代码

public class HD404 {
    public static void main(String[] args) {

        int N = StdIn.readInt();
        int x = N*2-1;

        for (int i = 0; i < N; i++) {
            for (int j = i; j > 0; j--) {
                StdOut.print(" ");
            }
            for (int k = 0; k < x; k++) {
                StdOut.print("*");
            }
            x-=2;
            StdOut.println();
        }

        x = 1;
        for (int i = 0; i < N; i++) {
            for (int j = i; j < N-1; j++) {
                StdOut.print(" ");
            }
            for (int k = 0; k < x; k++) {
                StdOut.print("*");
            }
            x += 2;
            StdOut.println();
        }

    }
}

现在我大多只是在猜测,我只是不能指出我的错误.我在这里错过了什么?

最佳答案 问题在于你要求绘制一颗星的代码的第二部分,你从零开始,你应该从一开始.

x = 1;
for (int i = 0; i < N; i++)

应该换成

x = 3;
for (int i = 1; i < N; i++)
点赞