5 条题解

  • -1
    @ 2023-7-20 8:02:54

    #include

    using namespace std; const int Maxn=55; int a[Maxn][Maxn]; int main() { int n; cin>>n; a[1][(n+1)/2]=1; int x=1; int y=(n+1)/2; for(int i=2;i<=n*n;i++) { if(x!=1&&y!=1){ if(a[x-1][y-1]0){x--;y--;a[x][y]=i;continue;} else {x++;a[x][y]=i;continue;} } if(x1){ if(y!=1) { if(a[n][y-1]==0) { x=n; y--; a[x][y]=i; continue; } else { x++; a[x][y]=i; continue; } } else { x++; a[x][y]=i; continue; }

    }
        if(y==1){
            if(x!=1)
            {
                if(a[x-1][n]==0)
                {
                    x--;
                    y=n;
                    a[x][y]=i;
                    continue;
                }
                else
                {
                    x++;
                    a[x][y]=i;
                    continue;
                }
            }
        }
    }
    
    
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            cout<<a[i][j]<<" ";
        }
        cout<<endl;
    }
    return 0;
    

    }

    信息

    ID
    93
    时间
    1000ms
    内存
    128MiB
    难度
    5
    标签
    递交数
    195
    已通过
    73
    上传者