0

我需要打印以下模式

0  0  0  0  0<br>
0  #  #  #  0<br>
0  #  0  #  0<br>
0  #  #  #  0<br>
0  0  0  0  0

我写的代码打印了这个

0  0  0  0  0<br>
0  #  #  #  0<br>
0  #  #  #  0<br>
0  #  #  #  0<br>
0  0  0  0  0<br>

代码是

public class PrintPattern {

public static void main(String[] args) {


    int [][] arr = new int[5][5];

    for(int i=0;i<5;i++){

        for(int j=0;j<5;j++){

            if(i>0 && i<4 && j!=0 && j!=4){
                arr[i][j]=1;
            }

        }
    }
    for(int i=0;i<5;i++){

        for(int j=0;j<5;j++){
            if(arr[i][j]==1){
                System.out.print(" "+"#"+" ");
            }
            else
                System.out.print(" "+arr[i][j]+" ");
        }
        System.out.println();
    }



}
}

我还需要将它推广到任何nxn矩阵,其中n = {2k+1,k>0}.

4

2 回答 2

3

你应该试着找出常数。

这里:

int center = n / 2;
for each node(x, y):
    int dist = max(abs(x - center), abs(y - center));
    if (dist % 2 == 0) ch = '0';
    else ch = '#'
于 2013-05-05T03:00:34.243 回答
1

你试试下面的代码

public class PrintPattern {

    public static void main(String[] args) {


        for(int i=0;i<5;i++) {

            for(int j=0;j<5;j++) {

                if(i==0 || i==4) {

                    System.out.print("0 ");
                    continue;
                }
                else if(j>0 && j<4 && (i != 2 || j != 2)) {

                   System.out.print("# ");
                   continue;
               }
               else
               System.out.print("0 ");
          }

          System.out.print("\n");
       }

    }
}
于 2013-05-05T03:17:02.423 回答