首页 > 解决方案 > Java中的多个重叠正方形

问题描述

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

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

#######
#   # #
#   # #
#   # #
##### #
#     #
#######

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

######
## # #
#  # #
#### #
#    #
######

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

谢谢。

标签: java

解决方案


  1. 为最大的正方形创建一个二维布尔数组。
  2. 对于此数组中的每个方形标记,应填充的单元格。
  3. 打印二维数组。

对于参数 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();
}

推荐阅读