21 条题解

  • -2
    @ 2024-11-10 18:50:06
    #include<iostream>
    using namespace std;
    int dx[]={0,1,0,-1};
    int dy[]={1,0,-1,0};
    int a[100][100];
    int main(){
    	int n;
    	cin>>n;
    	int num=1;
    	int x,y;
    	int f=0;
    	x=y=1;
    	while(num<=n*n){
    		a[x][y]=num++;
    		x+=dx[f];
    		y+=dy[f];
    		if(x>n||y>n||x<1||y<1||a[x][y]!=0){
    			if(f==0) x==,y--; 
    			else if(f==1) x--,y--;
    			else if(f==2) x--,y++;
    			else x++,y++;
    			f++;
    			f%=4;
    		}
    	}
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<=n;i++){
    			cout<<a[i][j]<<" ";
    		}
    		cout<<endl;
    	}
    	return 0;
    }
    

    信息

    ID
    1043
    时间
    1000ms
    内存
    32MiB
    难度
    6
    标签
    递交数
    781
    已通过
    254
    上传者