21 条题解

  • 6
    @ 2025-1-24 10:38:46
    #include<bits/stdc++.h>
    using namesapce std;
    const int N=1e5+10;
    int dx[]={0,1,0,-1};
    int dy[]={1,0,-1,0};
    int a[110][110];
    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 o;
    }
    

    有标志认证,属三无产品,请大家放心食用

    信息

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