3 solutions

  • 5
    @ 2024-7-23 16:09:53
    #include<bits/stdc++.h>
    using namespace std;
    int dx[]={0,1,0,-1};
    int dy[]={1,0,-1,0};
    int g[100][100];
    int main()
    {
        int n;
        cin>>n;
        int x=1,y=1,d=0;
        for(int i=1;i<=n*n;i++)
        {
            g[x][y]=i;
            int a=x+dx[d],b=y+dy[d];
            if(a<1 || a>n || b<1 || b>n || g[a][b]!=0)
            {
                d++;
                if(d==4) d=0;
                a=x+dx[d],b=y+dy[d];
            }
            x=a,y=b;
        }
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=n;j++)
            {
                cout<<setw(3)<<g[i][j]<<" ";
            }
            cout<<endl;
        }
    }
    
    • 0
      @ 2026-10-2 10:23:09
      #include<bits/stdc++.h>
      using namespace std;
      int dx[]={0,1,0,-1};
      int dy[]={1,0,-1,0};
      int g[100][100];
      int main()
      {
          int n;
          cin>>n;
          int x=1,y=1,d=0;
          for(int i=1;i<=n*n;i++)
          {
              g[x][y]=i;
              int a=x+dx[d],b=y+dy[d];
              if(a<1 || a>n || b<1 || b>n || g[a][b]!=0)
              {
                  d++;
                  if(d==4) d=0;
                  a=x+dx[d],b=y+dy[d];
              }
              x=a,y=b;
          }
          for(int i=1;i<=n;i++)
          {
              for(int j=1;j<=n;j++)
              {
                  cout<<setw(3)<<g[i][j]<<" ";
              }
              cout<<endl;
          }
      }
      
      • -3
        @ 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;
        }
        
        • 1

        Information

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