2 solutions
-
4
#include<bits/stdc++.h> using namespace std; int dx[]={0,1,0,-1}; int dy[]={1,0,-1,0}; int g[100][100]; int main() { int n; cin>>n; int x=1,y=1,d=0; for(int i=1;i<=n*n;i++) { g[x][y]=i; int a=x+dx[d],b=y+dy[d]; if(a<1 || a>n || b<1 || b>n || g[a][b]!=0) { d++; if(d==4) d=0; a=x+dx[d],b=y+dy[d]; } x=a,y=b; } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { cout<<setw(3)<<g[i][j]<<" "; } cout<<endl; } }
-
0
#include <bits/stdc++.h> using namespace std; int N[22][22]; //右下左上 int dx[] = {0,1,0,-1}; int dy[] = {1,0,-1,0}; int main(){ int n; cin >> n; int x = 1; int y = 1; int d = 0; for(int i = 1;i<=n*n;i++){ N[x][y] = i; x = x + dx[d]; y = y + dy[d]; //如果越界 if(x < 1 || x > n ||y <1||y>n || N[x][y] != 0){ x =x - dx[d]; y =y - dy[d]; d++; if(d == 4)d=0; x =x + dx[d]; y =y + dy[d]; } } for(int i = 1;i<=n;i++){ for(int j = 1;j<=n;j++){ cout<<setw(3)<< N[x][y]<< " "; } cout << endl; } return 0; }
- 1
Information
- ID
- 78
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 3
- Tags
- (None)
- # Submissions
- 83
- Accepted
- 31
- Uploaded By