Java中的多重重叠正方形

Java中的多重重叠正方形,java,Java,在Java中,我们如何使用单个方法制作具有相同左上角的多个重叠正方形(不同长度) 例如,如果函数的参数为5,7,则输出应如下所示: ####### # # # # # # # # # ##### # # # ####### ###### ## # # # # # #### # # # ###### 如果参数为2、4、6,则输出应如下所示: ####### # # # # # # # # # ##### # # # ####### ######

在Java中,我们如何使用单个方法制作具有相同左上角的多个重叠正方形(不同长度)

例如,如果函数的参数为5,7,则输出应如下所示:

#######
#   # #
#   # #
#   # #
##### #
#     #
#######
######
## # #
#  # #
#### #
#    #
######
如果参数为2、4、6,则输出应如下所示:

#######
#   # #
#   # #
#   # #
##### #
#     #
#######
######
## # #
#  # #
#### #
#    #
######
我能够分别绘制单个正方形和多个正方形,但在这方面存在问题

谢谢

  • 为最大正方形创建二维布尔数组
  • 对于此数组中的每个方形标记,应填充的单元格
  • 打印二维数组
  • 对于论点5和论点7,应该是这样的:

    boolean[][] arr = new boolean[7][7];
    for(int i = 0; i < 7; i++){
        for(int j = 0; j < 7; j++){
            if(i == 0 || j == 0 || i == 6 || j == 6){
                arr[i][j] = true;
            }
        }
    }
    for(int i = 0; i < 5; i++){
        for(int j = 0; j < 5; j++){
            if(i == 0 || j == 0 || i == 4 || j == 4){
                arr[i][j] = true;
            }
        }
    }
    for(int i = 0; i < 7; i++){
        for(int j = 0; j < 7; j++){
            if(arr[i][j]){
                System.out.print("#");
            }
            else{
                System.out.print(" ");
            }
        }
        System.out.println();
    }
    
    boolean[][]arr=新的boolean[7][7];
    对于(int i=0;i<7;i++){
    对于(int j=0;j<7;j++){
    如果(i==0 | | j==0 | | i==6 | | j==6){
    arr[i][j]=真;
    }
    }
    }
    对于(int i=0;i<5;i++){
    对于(int j=0;j<5;j++){
    如果(i==0 | | j==0 | | i==4 | | j==4){
    arr[i][j]=真;
    }
    }
    }
    对于(int i=0;i<7;i++){
    对于(int j=0;j<7;j++){
    if(arr[i][j]){
    系统输出打印(“#”);
    }
    否则{
    系统输出打印(“”);
    }
    }
    System.out.println();
    }