12 条题解

  • 0
    @ 2026-4-12 19:23:18
    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;
        }
        return 0;
    }
    
    

    信息

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