40分求救
查看原帖
40分求救
917683
rnf5114楼主2023/4/8 16:51
#include<bits/stdc++.h>
using namespace std;
int dy[4]={1,0,-1,0};
int dx[4]={0,1,0,-1};
int n,a[105][105];
int s=2;
int nx=0,ny=0;
void dfs(int nx,int ny,int d){
	if(s > n*n)	
		return ;
    if(d == 4)	d = 0;
    int xx = nx + dx[d];
    int yy = ny + dy[d];
	if(0 <= xx && xx <n && 0 <= yy && yy < n &&a[xx][yy] == 0){
    	a[xx][yy] = s;
    	s++;
    	dfs(xx,yy,d);
	}
	else 
		dfs(nx,ny,d+1);
}
int main(){
    cin>>n;
    a[0][0]=1;
    dfs(0,0,0);
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            cout<<"  "<<a[i][j];
        }
        cout<<endl;
    }
}
2023/4/8 16:51
加载中...