题目描述
输入整数N,输出一个N阶的回字形二维数组。
数组的最外层为1,次外层为2,以此类推。
算法1
(暴力枚举) $O(n^2)$
依次把n * n矩阵从大到小的
(n-1)(n-1)矩阵
(n-2)(n-2)矩阵
....
1 * 1 矩阵依次加一
}
}
java 代码
import java.util.Scanner;
public class Main{
public static void main(String[] args)
{
Scanner s=new Scanner(System.in);
int N;
while(true)
{
N=s.nextInt();
if(N==0)break;
int [][] q=new int[N][N];
int dx=0,dy=0;
int n=N,m=N;
while(n>0)
{for(int i=dx;i<m-dx;i++)
for(int j=dy;j<m-dy;j++)
q[i][j]+=1;
n-=2;
dx++;
dy++;
}
for(int i=0;i<N;i++)
{for(int j=0;j<N;j++)
{
System.out.printf("%d ",q[i][j]);
}
System.out.println();
}
System.out.println();
}
}
}