题解

#include <iostream>
using namespace std;
int a[1001][1001],n;
void dfs(int,int,int);
int main()
{cin>>n;
dfs(1,n/2+1,1);
for(int i=1;i<=n;i++)
{for(int j=1;j<=n;j++)
cout<<a[i][j]<<" ";cout<<endl;}
}
void dfs(int x,int y,int step)
{if(step==n*n+1) return;
a[x][y]=step;
int tx=x-1,ty=y+1;
if(tx<1) tx=tx+n;
if(tx>n) tx=tx-n;
if(ty<1) ty=ty+n;
if(ty>n) ty=ty-n;
if(a[tx][ty]==0) dfs(tx,ty,step+1);
else dfs(x+1,y,step+1);
}

0 条评论

目前还没有评论...

信息

ID
1978
难度
2
分类
(无)
标签
递交数
2443
已通过
1340
通过率
55%
被复制
8
上传者