繁体   English   中英

如何在Java中根据用户的长度和宽度创建X模式?

[英]How to create an X pattern in Java given length and width from user?

尝试编写一个程序,该程序根据用户输入的宽度和长度产生一种X /螺旋形图案。 长度是屏幕上的多少个字符,宽度是屏幕上的多少个字符。 我在弄清楚数学关系以实现所需的模式时遇到了麻烦。

正确的示例输出如下所示:
输入您想要的长度:39
输入您想要的宽度:7
在此处输入图片说明

这是到目前为止的代码及其生成的代码:

import java.util.Scanner;

public class Twisty {
    public static void main(String[] args){
      Scanner myScanner = new Scanner(System.in);
      System.out.print("Input your desired length: ");
      int length = myScanner.nextInt();
      System.out.print("Input your desired width: ");
      int width = myScanner.nextInt();

      for(int i=0; i<width; i++) {
        for(int j=0; j<length; j++) {
            if(i==j || (i+j)%width==width-1 || (i+j)%width==0) {
                System.out.print("#");
            } else {
                System.out.print(" ");
            }
        }
        System.out.println();
     }
   }
}

输入您想要的长度:39
输入您想要的宽度:7
在此处输入图片说明
我究竟做错了什么? 谢谢你的帮助。

集中于一个X开始。 您只需要检查2种情况。 一个绘制X的一部分,另一个绘制另一侧。 我基本上是从您的代码中获取此信息的,并在if语句中删除了第三个条件。

//System.out.print("Input your desired length: ");
int length = 7;
//System.out.print("Input your desired width: ");
int width = 7;

for(int i=0; i<width; i++){
    for(int j=0; j<length; j++){
        if(i==j  || (i+j)%width==width-1){
            System.out.print("#");
        }else{
            System.out.print(" ");
        }
    }System.out.println();
}

降低该行为并可以绘制一个X后,只需修改宽度的水平位置即可。 用宽度修改长度位置几乎就像对待一个完整的X一样。不在乎相对于整个图片的水平位置,而是在乎相对于当前X的位置。 您可以执行以下操作:

//System.out.print("Input your desired length: ");
int length = 39;
//System.out.print("Input your desired width: ");
int width = 7;

for(int i=0; i<width; i++){
    for(int j=0; j<length; j++){
        if(i==j%width  || (i+j%width)%width==width-1){
            System.out.print("#");
        }else{
            System.out.print(" ");
        }
    }System.out.println();
}

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM