21 条题解

  • -2
    @ 2024-11-10 18:33:20
    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e5+10;
    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 ; j++)
                cout << a[i][j] << " ";
            cout << endl;
    	}
    	return 0;
    }
    

    信息

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