[英]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();
}
}
}
集中于一个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.