Run ID 作者 问题 语言 测评结果 Time Memory 代码长度 提交时间
133203 吕毅心 螺旋矩阵 C++ Accepted 2 MS 280 KB 2077 2025-10-17 18:17:07

Tests(10/10):


Code:

#include<iostream> // cin\cout\endl #include<cstdio> //scanf()\printf() #include<cstring> // strcpy()\strcat()\strcmp()\strlen()\memset() #include<cmath> //sqrt()\pow()\abs()\ceil()\floor()\max()\min() using namespace std; int main(){ /* int n,i,j,sum=0; cin>>n; int a[n][n]; for(i=0;i<n;i++){ sum=0; for(j=0;j<n;j++){ cin>>a[i][j]; if(a[i][j]==1){ sum+=1; } } if(sum%2!=0){ cout<<"Corrupt";return 0; } } sum=0; for(j=0;j<n;j++){ for(i=0;i<n;i++){ if(a[j][i]==1){ sum+=1; } } if(sum%2!=0){ cout<<"Corrupt";return 0; } sum=0; } cout<<"OK"; */ /* int n,i,j,sum=0; cin>>n; int a[n][n]; for(i=0;i<n;i++){ for(j=0;j<n;j++){ if(i<j||i==j){ cout<<i+1<<" "; }else{ cout<<j+1<<" "; } } cout<<endl; } */ /* int n,i,j,sum=0; cin>>n; int a[n][n]; for(i=0;i<n;i++){ for(j=0;j<n;j++){ if(i%2==0){ a[i][j]=i*n+j+1; }else if(i%2!=0){ a[i][j]=(i+1)*n-j; } } } for(i=0;i<n;i++){ for(j=0;j<n;j++){ printf("%3d",a[j][i]); } cout<<endl; } */ int n,j,sum=0; cin>>n; int a[n][n]; int t=1; int i=0; while(t<=n*n){ for(int j=i;j<n-i&&t<=n*n;j++) a[i][j]=t++; for(int j=i+1;j<n-i&&t<=n*n;j++) a[j][n-1-i]=t++; for(int j=n-i-2;j>=i&&t<=n*n;j--) a[n-1-i][j]=t++; for(int j=n-i-2;j>i&&t<=n*n;j--) a[j][i]=t++; i++; } for(i=0;i<n;i++){ for(j=0;j<n;j++){ printf("%4d",a[i][j]); } cout<<endl; } return 0; }