2 solutions
-
0
Guest MOD
-
1
#include<bits/stdc++.h> using namespace std; int main(){ int n,s[10][10],sum=0,j=0; int a[10][10] = {0}; int dx[] = {0,1,0,-1}; int dy[] = {1,0,-1,0}; int dir = 0; int x = 0, y = -1; cin >> n; for(int i=1;i<=n*n;i++){ int nx = x + dx[dir]; int ny = y + dy[dir]; if (nx >= n || ny >= n || nx < 0 || ny < 0 || a[nx][ny] != 0) { dir = (dir + 1) % 4; nx = x + dx[dir]; ny = y + dy[dir]; } a[nx][ny] = i; x = nx, y = ny; } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cout << setw(3) << a[i][j]; } cout << '\n'; } } -
0
代码:
#include<bits/stdc++.h> typedef long long ll; using namespace std; const int N=10010; int a[N][N]; int k=1,x=1; int n; int y; int main(){ cin.sync_with_stdio(false); ios::sync_with_stdio(0); cin>>n; while(k<=n*n){ while(y<n&&!a[x][y+1]) a[x][++y]=k++; while(x<n&&!a[x+1][y]) a[++x][y]=k++; while(y>1&&!a[x][y-1]) a[x][--y]=k++; while(x>1&&!a[x-1][y]) a[--x][y]=k++; } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++) printf("%3d",a[i][j]); cout<<'\n'; } return 0; }
- 1
Information
- ID
- 416
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 4
- Tags
- (None)
- # Submissions
- 91
- Accepted
- 40
- Uploaded By