给出一个不大于 9 的正整数 n,输出 n×n 的蛇形方阵。
从左上角填上 1 开始,顺时针方向依次填入数字,如同样例所示。注意每个数字有都会占用 3 个字符,前面使用空格补齐。
这题我还没搞懂,以下是借鉴一个大佬的代码,仅供参考。
#include<bits/stdc++.h>
using namespace std;
int a[100][100];
int main()
{
int n;
cin>>n;
int k=1,x=1,y=0;
int sum=n*n;
while (k<=sum)
{
while(x<n && !a[x+1][y])
{
a[++x][y]=k++;
}
while(y<n && !a[x][y+1])
{
a[x][++y]=k++;
}
while(x>1 && !a[x-1][y])
{
a[--x][y]=k++;
}
while(y>1 && !a[x][y-1])
{
a[x][--y]=k++;
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
cout<<setw(3)<<a[i][j];
cout<<endl;
}
return 0;
}
(待续)