1 solutions

  • 0
    @ 2025-11-5 17:17:33

    C :

    #include<stdio.h>
    
    int main(){
        int a,b,c,d;
        int u,i,l;
        int ll,kk,jj,xx;
        int zz;
        int flag;
        int z[105][105];
        while(~scanf("%d",&a)){
            zz=2;
            flag=0;
            b=(a-1)/2;
            xx=a-1;
            z[b][b]=1;
            u=b+1;i=b;c=2;
            while(b--){
                for(l=0;l<c;l++){
                    z[u][i]=zz;zz++;i--;}
                    i++;
                for(l=0;l<c;l++){
                        u--;
                    z[u][i]=zz;zz++;}
                for(l=0;l<c;l++){
                    i++;
                    z[u][i]=zz;zz++;}
                for(l=0;l<c;l++){
                    u++;
                    z[u][i]=zz;zz++;}
                c=c+2;
                u++;
            }
             for( ll=0;ll<a;ll++)
                for( kk=0;kk<a;kk++){
                    if(ll==kk)
                        flag+=z[kk][ll];
                    jj=ll+kk;
                   if(jj==xx)
                        flag+=z[ll][kk];
    
                    }
            for( ll=0;ll<a;ll++){
                for( kk=0;kk<a;kk++)
                    if(kk!=a-1)
                        printf("%d ",z[kk][ll]);
                    else
                        printf("%d",z[kk][ll]);
                        printf("\n");}
            printf("%d\n",flag-1);
        }
    
    }
    
    

    C++ :

    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<cmath>
    #include<algorithm>
    #include<iostream>
    
    using namespace std;
    
    int a[105][105];
    
    int main(){
        int n;
    //    freopen("in.txt", "r", stdin);
    //    freopen("out.txt", "w", stdout);
        while(cin>>n){
            if(n == 1)
            {
                printf("1\n1\n");
                continue;
            }
            int tem=n*n;
            for(int i=0;i<n-1;i++){
                for(int k=n-i-1;k>=i;k--)
                    a[n-1-i][k]=tem--;
                for(int k=n-i-2;k>=i;k--)
                    a[k][i]=tem--;
                for(int k=i+1;k<n-i;k++)
                    a[i][k]=tem--;
                for(int k=i+1;k<n-i-1;k++)
                    a[k][n-i-1]=tem--;
            }
            int sum=0;
            for(int i=0;i<n;i++){
                for(int k=0;k<n-1;k++){
                    cout<<a[i][k]<<" ";
                }
                cout<<a[i][n-1]<<endl;
            }
            for(int i=0;i<n;i++)
                for(int k=0;k<n;k++)
                    if(i==k||i+k==n-1)
                        sum+=a[i][k];
            cout<<sum<<endl;
        }
        return 0;
    }
    
    
    • 1

    Information

    ID
    18259
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By