猿问

制作一种使用星星创建 X 为正方形的图像的方法

我应该完成方法的内部


      public static void printXinSquare(int width) {


          } 

宽度是行数,以便它会创建


  * * * * * * * *

*   * * * * * *   *

* *   * * * *   * *

* * *   * *   * * *

* * * *     * * * *

* * * *     * * * *

* * *   * *   * * *

* *   * * * *   * *

*   * * * * * *   *

  * * * * * * * *

我尝试制作四个独立的三角形,并以某种方式将它们连接起来,但这不起作用。


我还尝试为空格创建一个 for 循环,然后为星星添加一个 for 循环,但我很困惑,不知道如何做到这一点。


为此,正如我之前所说,我尝试制作单独的三角形。


  public static void printXinSquare(int width) {



  for (int i = 1; i <= width/2+1; i++) {

     for (int j = 1; j <= i; j++) {


        System.out.print("*");

     }

     System.out.println();

  }

  for (int i = width/2+2; i <= width; i++) {

     for (int j = width+1-i; j >= 1; j--) {


        System.out.print("*");

     }

     System.out.println();

  }

  System.out.println();

 }

这将创建一个指向右侧的三角形。


  public static void printXinSquare(int width) {


  for (int line = width/2+1; line >1; line--) {

     for (int i = 1; i <= (line - 1); i++) {

        System.out.print(" ");

     }

     for (int i = 1; i <= (width    - 2 * line); i++) {

        System.out.print("*");

     }

     System.out.println();

  }

这将创建一个指向上方的三角形。


这是我到目前为止所尝试过的,但我认为这种方法行不通。


我认为我应该创建考虑到空格的 for 循环,


但我不知道该怎么做,因为空间是对角线方向的。


任何帮助完成此方法将不胜感激:)


LEATH
浏览 108回答 2
2回答

慕桂英4014372

10这应该以您问题中的确切图片的输入宽度打印。public static void printXinSquare(int width)&nbsp;{&nbsp; &nbsp; for (int k = 0; k < width; k++) {&nbsp; &nbsp; &nbsp; &nbsp; for (int j = 0; j < width; j++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (k == j || k == width - j - 1) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.print("&nbsp; ");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.print("* ");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; System.out.println();&nbsp; &nbsp; }}它*每次都会打印一个空格,以确保它像图片一样正确间隔开,并在两种不同的情况下打印2 个空格,每种情况都占一条对角线。两种情况如下:if行数等于当前列数,应该有一个空格而不是星号。这将创建从左上角到右下角的第一条对角线。if行数等于width当前列数 minus 1,它也应该是一个空格而不是星号。这将创建第二条相反方向的对角线。

GCT1015

尝试这样的事情:for (int i = 0; i < width; i++) {&nbsp; for (int j = 0; j < width; j++) {&nbsp; &nbsp; if (i == j || i+j == width) {&nbsp; &nbsp; &nbsp; &nbsp;System.out.print(" ");&nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp;System.out.print("*");&nbsp; &nbsp; }&nbsp; }&nbsp; System.out.println("");}'*'在这种情况下,当它不在三角形中时,您将进行打印,' '否则。内三角是条件(i==j || i+j==width)
随时随地看视频慕课网APP

相关分类

Java
我要回答