螺旋方阵(模拟)
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
你是否见过这样的图案,简单的模拟
没什么好说的,直接上代码!
代码
//(water problem)
#include<bits/stdc++.h>
using namespace std;
const int mx=100;
int forge[4]={0,1,0,-1};
int opint[4]={1,0,-1,0};
int a[mx][mx];
int n,i,j,k,d;
int main(){
cin>>n;
for(i=0;i<=n+1;i++)
for(j=0;j<=n+1;j++) a[i][j]=1;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) a[i][j]=0;
i=1,j=1,d=0;
for(k=1;k<=n*n;k++){
a[i][j]=k;
if(a[i+forge[d]][j+opint[d]]!=0) d=(++d)%4;
i=i+forge[d];
j=j+opint[d];
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++)
cout<<setw(3)<<a[i][j];
cout<<endl;
}
return 0;
}
/*
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
*/
谢谢