1 条题解
-
1曾致瑾 (zengzhijin) LV 6 @ 2023-2-2 17:13:59
明明一开始想直接循环算出每一个位置要放什么数来装逼,结果: 只好用最简单的放法做,
AC代码走起:
#include<bits/stdc++.h> using namespace std; int n,x=1,y=1,st=1,t; int a[110][110]; int dx[4]={0,1,0,-1}, dy[4]={1,0,-1,0}; int main(){ cin>>n; for(int i=1;i<=110;i++){ for(int j=1;j<=110;j++){ a[i][j]=-1; } } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ a[i][j]=0; } } a[1][1]=1; while(st<n*n){ if(a[x+dx[t]][y+dy[t]]!=0){ t=(t+1)%4; } x+=dx[t]; y+=dy[t]; a[x][y]=++st; } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cout<<setw(4)<<a[i][j]; } cout<<"\n"; } return 0; }
- 1
信息
- ID
- 1549
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 92
- 已通过
- 16
- 上传者