只有这个时候想起了while的好
2024-01-29 18:47:14
发布于:浙江
55阅读
0回复
0点赞
#include <iostream>
#include <iomanip>
using namespace std;
const int N = 3005;
int a[N][N];
int n;
int main(){
cin >> n;
int x = 0, y =- 1,num = 1;
while(num <= n * n) {
while(y + 1 < n && a[x][y + 1] == 0){
++y;
a[x][y] = num;
++num;
}
while(x + 1 < n && a[x +1][y] == 0){
++x;
a[x][y] = num;
++num;
}
while(y - 1 >= 0 && a[x][y - 1] == 0){
--y;
a[x][y] = num;
++num;
}
while(x - 1 >= 0 && a[x - 1][y] == 0){
--x;
a[x][y] = num;
++num;
}
}
for(int i=0;i<n;++i)
{
for(int j=0;j<n;++j)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
全部评论 2
一个while不香吗
2024-07-23 来自 浙江
0哇,又一个看起来牛逼轰轰的题解~~~~~~
#include<iostream> using namespace std; int n,A[102][102]={},a[4]={-1,0,1,0},b[4]={0,1,0,-1},sum=2,x=1,y=1; int main(){ cin>>n; A[1][1]=1; for(int i=1;sum<=n*n;i++){ while(A[x+a[i%4]][y+b[i%4]]==0&&x+a[i%4]<=n&&y+b[i%4]<=n&&x+a[i%4]>0&&y+b[i%4]>0){ x+=a[i%4]; y+=b[i%4]; A[x][y]=sum++; } } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cout<<A[i][j]<<" "; }cout<<endl; } }
2024-07-23 来自 浙江
0
有帮助,赞一个