如 输入 4
打印
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
void printNN(int N)
{
if(N <= 0) return;
if(N == 1) return;
int *p = new int[N*N];
int i = 0, j = 0;
int cnt = 1;
int m = N;
while(m>=(N+1)/2)
{
while(j<m)
p[i*N+j++] = cnt++;
j--;
while(++i<m)
p[i*N+j] = cnt++;
i--;
while(--j>=(N-m))
p[i*N+j] = cnt++;
j++;
while(--i>(N-m))
p[i*N+j] = cnt++;
i++;j++;
m--;
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%2d ", p[i*N+j]);
printf("/n");
}
delete []p;
}