为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

LEATH 2023-07-13 15:57:04
我应该完成方法的内部      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 循环,但我不知道该怎么做,因为空间是对角线方向的。任何帮助完成此方法将不胜感激:)
查看完整描述

2 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

10这应该以您问题中的确切图片的输入宽度打印。


public static void printXinSquare(int width) 

{

    for (int k = 0; k < width; k++) {

        for (int j = 0; j < width; j++) {

            if (k == j || k == width - j - 1) {

                System.out.print("  ");

            }

            else {

                System.out.print("* ");

            }

        }

        System.out.println();

    }

}

它*每次都会打印一个空格,以确保它像图片一样正确间隔开,并在两种不同的情况下打印2 个空格,每种情况都占一条对角线。两种情况如下:


if行数等于当前列数,应该有一个空格而不是星号。这将创建从左上角到右下角的第一条对角线。


if行数等于width当前列数 minus 1,它也应该是一个空格而不是星号。这将创建第二条相反方向的对角线。


查看完整回答
反对 回复 2023-07-13
?
GCT1015

TA贡献1827条经验 获得超4个赞

尝试这样的事情:


for (int i = 0; i < width; i++) {

  for (int j = 0; j < width; j++) {

    if (i == j || i+j == width) {

       System.out.print(" ");

    } else {

       System.out.print("*");

    }

  }

  System.out.println("");

}

'*'在这种情况下,当它不在三角形中时,您将进行打印,' '否则。内三角是条件(i==j || i+j==width)


查看完整回答
反对 回复 2023-07-13
  • 2 回答
  • 0 关注
  • 107 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信