题解 | #回型矩阵#
回型矩阵
http://www.nowcoder.com/practice/36d5dfddc22c4f5b88a5b2a9de7db343
#include <stdio.h>
int main(){
int n,a[19][19],num=1;
scanf("%d",&n);
int p=0,q=n-1;
while(num<=n*n){
for(int i=p;i<=q;i++) a[p][i]=num++;
for(int i=p+1;i<=q;i++) a[i][q]=num++;
for(int i=q-1;i>=p;i--) a[q][i]=num++;
for(int i=q-1;i>p;i--) a[i][p]=num++;
q--;
p++;
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
int main(){
int n,a[19][19],num=1;
scanf("%d",&n);
int p=0,q=n-1;
while(num<=n*n){
for(int i=p;i<=q;i++) a[p][i]=num++;
for(int i=p+1;i<=q;i++) a[i][q]=num++;
for(int i=q-1;i>=p;i--) a[q][i]=num++;
for(int i=q-1;i>p;i--) a[i][p]=num++;
q--;
p++;
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}