3-3蛇形填数

原创 2015年11月19日 14:57:14
在n*n的方阵里填入1,2,...,n*n (n<=8),要求填成蛇形。

例如n=4时的方阵为:

1    2    3    4

12 13  14   5

11 16  15   6

10  9    8     7


程序:

#include <iostream>
#include <cstring>
const int maxn = 20;	
using namespace std;
int main()
{
	int a[maxn][maxn];
	int n, x, y,sum=0;
	cin >> n;
	memset(a, 0, sizeof(a));
	sum=a[x=0][y=0]=1;
	while (sum<n*n)
	{
		while (y+1<n&&!a[x][y+1]) a[x][++y]=++sum;//必须为++sum;
		while (x+1<n&&!a[x+1][y]) a[++x][y]=++sum;
		while (y-1>=0&&!a[x][y-1])a[x][--y]=++sum;
		while (x-1>=0&&!a[x-1][y])a[--x][y]=++sum;
	}
	for (x=0;x<n;x++)
	{
		for (y=0;y<n;y++)
		cout<<a[x][y]<<"   ";
		cout<<endl;
	}
return 0;
}

思路:定义二维数组,用0填满,控制输出。

关于4个while:由边界条件判断停止输出。若a[][]==0则输入,简写为!a[x+1][y]。





程序3-3 蛇形填数

蛇形填数 在n*n的方阵中填入1,2,3...n*n,要求填成蛇形.例如,n=4时的方阵为: 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 代码如下: #i...
  • hurmishine
  • hurmishine
  • 2016年03月12日 23:39
  • 655

算法竞赛 3-3蛇形填数

在n*n方阵里填入1,2,…,n*n,要求填成蛇形。例如n=4时方阵为 10 11 12 1 9 16 13 2 8 15 14 ...
  • zhaohaibo_
  • zhaohaibo_
  • 2018年01月27日 13:05
  • 12

Java笔记(例1:蛇形填数) 边走边聊

(2013-7-17) 今天先复习一下昨天的成果,来一道小小的设计题---蛇形填数: 在n*n的方阵中填入1,2,...,n*n;要求填成蛇形。例如n=4时的方阵为: 10  11  12  1   ...
  • wangxiaosu
  • wangxiaosu
  • 2013年07月17日 11:38
  • 1782

acm蛇形填数

描述 在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的...
  • qq_36238595
  • qq_36238595
  • 2016年12月09日 13:13
  • 544

【经典算法】:蛇形填数,最简单的方法了。。。

问题概述什么是蛇形填数,百度一下即可 解法你能发现这里面的数为1到 n*n; 所以写个循环即可while(count...
  • qq_23100787
  • qq_23100787
  • 2015年09月29日 16:20
  • 4571

蛇形填数(矩阵)

蛇形填数        在 n x n 方针里填入 1,2,...,n x n,要求填成蛇形。例如:n=4时方阵为: 10 11 12 1 9   16 13 2 8   15 14 3 7...
  • qq_15096707
  • qq_15096707
  • 2015年01月31日 17:39
  • 809

算法竞赛入门经典 蛇形填数

蛇形填数
  • hoho_12
  • hoho_12
  • 2016年02月18日 21:35
  • 862

nyoj 852 蛇形填数(二)【循环+数组】

蛇形填数(二) 时间限制:2000 ms  |  内存限制:65535 KB 难度:3 描述 1 2 3 4 5 12 13 14 6 11 15 7 10 8 9 ...
  • dxx_111
  • dxx_111
  • 2015年08月31日 16:39
  • 530

C语言蛇形填数

思路就是:右-》下-》左-》上#include #include int a[10][10]; int main() { int i,j, n, num=0; memset(a, 0,...
  • acmjk
  • acmjk
  • 2015年05月06日 22:58
  • 1287

C++蛇形填数

蛇形填数 问题描述: 在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为:  10 11 12 1   9 16 13 2   8 15 14 3   7  6 ...
  • zhaochengyuan
  • zhaochengyuan
  • 2012年08月10日 15:20
  • 2370
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:3-3蛇形填数
举报原因:
原因补充:

(最多只允许输入30个字)