21 条题解

  • -2
    @ 2024-11-1 19:47:17
    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;j++)
    			cout <<a[i][j]<<" ";
    		cout<<endl;
    	}
    
    
    }
    

    信息

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