1 solutions
-
0
按照题目要求模拟即可
#include<bits/stdc++.h> using namespace std; const int N=45; int n; int g[N][N]; int main() { int n; cin>>n; int x=1,y=n/2+1; //当前可以填数的位置 for(int i=1;i<=n*n;i++) { g[x][y]=i; if(x==1&&y!=n) x=n,y++; //第一个条件 else if(x>1&&y==n) x--,y=1; //第二个条件 else if(x==1&&y==n) x++; //第三个条件 else if(g[x-1][y+1]) x++; //第四个条件已经填数 else x--,y++; //第四个条件还未填数 } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { cout<<g[i][j]<<" "; } cout<<endl; } return 0; }
- 1
Information
- ID
- 1112
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 1
- Accepted
- 1
- Uploaded By