第三章 - 蛇形填数
类似这样填数:10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4思路:向下,左,上,右走每个方向直到无法走时变化方向代码如下:#include<iostream>#include<cstdio>#include<cstring>using namespace std;int m
·
类似这样填数:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
思路:向下,左,上,右走每个方向直到无法走时变化方向
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main(){
int n;
scanf("%d",&n);
int x=0,y=n-1,tot=0;
int a[20][20];
memset(a,0,sizeof(a));
a[x][y]=1;tot++;
while(tot<n*n){
while(x+1<n&&!a[x+1][y])a[++x][y]=++tot;
while(y-1>=0&&!a[x][y-1])a[x][--y]=++tot;
while(x-1>=0&&!a[x-1][y])a[--x][y]=++tot;
while(y+1<n&&!a[x][y+1])a[x][++y]=++tot;
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
printf("%3d",a[i][j]);
}
printf("\n");
}
}
更多推荐
已为社区贡献4条内容
所有评论(0)