2 solutions

  • 0
    @ 2024-12-4 19:44:50
    #include <bits/stdc++.h>
    using namespace std;
    int N[22][22];
    //右下左上
    int dx[] = {0,1,0,-1};
    int dy[] = {1,0,-1,0};
    int main(){
        int n;
        cin >> n;
        int x = 1;
        int y = 1;
        int d = 0;
        for(int i = 1;i<=n*n;i++){
            N[x][y] = i;
            x = x + dx[d];
            y = y + dy[d];
            //如果越界
            if(x < 1 || x > n ||y <1||y>n || N[x][y] != 0){
                x =x - dx[d];
                y =y - dy[d];
                d++;
                if(d == 4)d=0;
                x =x + dx[d];
                y =y + dy[d];
            }
        }
        for(int i = 1;i<=n;i++){
            for(int j = 1;j<=n;j++){
                cout<<setw(3)<< N[x][y]<< " ";
            }
            cout << endl;
        }
    
    
    
    
    
    
    
        return 0;
    }
    

    Information

    ID
    78
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    3
    Tags
    (None)
    # Submissions
    83
    Accepted
    31
    Uploaded By