12 条题解

  • 2
    @ 2026-4-12 19:21:58
    #include<bits/stdc++.h>
    #define int long long
    using namespace std;
    const int N=1e3+10; 
    const int INF=0x3f3f3f3f;
    int n,a[N][N],x=1,y=1,num;
    signed main()
    {
    	cin >> n;
    	while(num<n*n)
    	{
    		while(y<=n&&a[x][y]==0)
    		{
    			a[x][y]=++num;
    			y++;
    		}
    		x++,y--;
    		while(x<=n&&a[x][y]==0)
    		{
    			a[x][y]=++num;
    			x++;
    		}
    		x--,y--;
    		while(y>=1&&a[x][y]==0)
    		{
    			a[x][y]=++num;
    			y--;
    		}
    		x--,y++;
    		while(x>=1&&a[x][y]==0)
    		{
    			a[x][y]=++num;
    			x--;
    		}
    		x++,y++;
    	}
    	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
    标签
    递交数
    1108
    已通过
    338
    上传者