1

我正在打印输出 ascii 艺术,它需要从控制台输入的两个整数,然后从这两个整数(然后是尺寸)中显示一个矩形或正方形。但是角必须是与主要符号不同的符号......但诀窍是短边必须只有 1 或 2 个原始符号(由于奇数或偶数。)

这里有两个例子:

6x9:

001111100
011111110
111111111
111111111
011111110
001111100

9x6:

001100
011110
111111
111111
111111
111111
111111
011110
001100

我已经走了这么远(因为控制台只从 0 到 9 对吗?)需要添加什么来考虑角落?If语句会起作用还是其他什么?是的,我知道这仅适用于“正方形”。我将如何添加第二个维度?我能得到一些帮助吗?

class Main {
public static void printSquare(int size) {
    if(size > 9) {
       size = 9;
    }
    int line = 1;

        while (line <= size) { 
            int width = size; 
            int i = 1; 

            while (i <= width) {
                System.out.print("*");
                i = i + 1;
            }

            System.out.println(); // Newline
            line = line + 1;
        }
    }
}
4

1 回答 1

0

您需要简单地告诉它三个角符号是不同的。

 Scanner keys = new Scanner(System.in);

 int x = 0;
 int y = 0;

 public void getInput() {

 x = keys.nextInt();
 y = keys.nextInt();
 createart();

 }

 public void createart() {

 System.out.print("00");

 int counter = 0;

 while (counter < x - 4) {

 System.out.print(1);

 counter++;

 }
 System.out.println("00");

 counter = 0;
 System.out.print("0");
 while (counter < x - 2) {

 System.out.print(1);
 counter++;

 }
 System.out.print("0");
 counter = 0;
 int counter2 = 0;
 while (counter < y - 4) {
 System.out.println("");

 while  (counter2 < x) {

 System.out.print(1);

 counter2++;
 }
 counter++;
 } 
 System.out.println("");
 counter = 0;
 while (counter < x - 2) {

 System.out.print(1);

 counter++;

 }

 counter = 0;
 System.out.println("0");
 System.out.print("00");
 while (counter < x - 4) {

 System.out.print(1);

 counter++;

 }

 System.out.print("00"); 

 }   

简单的逻辑。

于 2013-09-03T02:59:49.790 回答