题目描述:
在n×n方阵里填入1,2,…,n×n,要求填成蛇形。例如,n=4时方阵为:
1011121
9 16132
8 15143
7 6 5 4
上面的方阵中,多余的空格只是为了便于观察规律,不必严格输出。n≤8。
代码:
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
int n;
cin>>n;
int a[n+1][n+1];
memset(a,0,sizeof(a));//a初始化为0 或者双重循环赋值
int p=0,q=n-1,now=1;
a[p][q]=1;
while(now<n*n)
{
while(!a[p+1][q]&&(p+1)<=n-1)a[++p][q]=++now;//下
while(!a[p][q-1]&&(q-1)>=0)a[p][--q]=++now;//左
while(!a[p-1][q]&&(p-1)>=0)a[--p][q]=++now;//上
while(!a[p][q+1]&&(q+1)<=n-1)a[p][++q]=++now;//右
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
}
EM…
格式没有考虑