1 solutions
-
0
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