ITPub博客

首页 > 架构设计 > 操作系统 > 蛇形填数

蛇形填数

操作系统 作者:大佬111 时间:2018-08-31 09:07:05 0 删除 编辑


在n*n方阵里填入1,2,...,n*n,要求填成蛇形。例如n=4时方阵为:

 10 11 12 1 
  9 16 13 2
  8 15 14 3
  7  6   5  4

上面的方阵中,多余的空格只是为了便于观察规律,不必严格输出。n<=8。

#include<iostream>#include<cstring>using namespace std;#define MAXN 10int a[MAXN][MAXN];int main(){	int n,x,y,tot=0;	cin>>n;	memset(a,0,sizeof(a));	tot=a[x=0][y=n-1]=1;	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(x=0;x<n;x++)	{		for(y=0;y<n;y++)		cout<<a[x][y]<<" ";cout<<endl;	}	return 0;}

来源:https://blog.csdn.net/sinat_35793960/article/details/74330630

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31548646/viewspace-2213272/,如需转载,请注明出处,否则将追究法律责任。

上一篇: Java学习方法
请登录后发表评论 登录
全部评论

注册时间:2018-08-03

  • 博文量
    27
  • 访问量
    9369