题解 | #回型矩阵#
回型矩阵
https://www.nowcoder.com/practice/36d5dfddc22c4f5b88a5b2a9de7db343
#include <stdio.h>
int main()
{
int num=1,i=0,j=0,k,left=-1,right,up=0,down,n,flag1=0,flag2=1;
int a[19][19]={0};
scanf("%d", &n);
down=n-1,right=n-1;
for(k=0;k<n*n;k++)
{
a[i][j]=num++;
if(i==up&&j==right)
{
flag1=1,flag2=0;
if (up==down)
flag1=0,flag2=-1;
}
else if(i==down&&j==right)
flag1=0,flag2=-1;
else if(i==up&&j==left)
flag1=0,flag2=1;
else if(i==down&&j==left)
flag1=-1,flag2=0;
i+=flag1,j+=flag2;
if(i==up&&j==right)
left++;
else if(i==down&&j==right)
up++;
else if(i==up&&j==left)
down--;
else if(i==down&&j==left)
right--;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}
格力公司福利 356人发布