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]。





相关文章推荐

C++蛇形填数

  • 2013年07月24日 00:21
  • 2KB
  • 下载

回形填数(蛇形填数)

  • 2013年05月07日 15:13
  • 702B
  • 下载

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

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

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
  • 476

有关蛇形填数的问题

最常见的蛇形填数问题是:在n*n方阵里填入1,2,3,......,n*n,要求填成蛇形。 下面我就直接上代码了,代码都是可以直接在编译器上运行的。 #define _CRT_SECURE...

简单递归之蛇形填数

时间限制:1000 ms  |  内存限制:65535 KB 【问题描述】 peter喜欢玩字母游戏,于是他编写了一个有趣的游戏。游戏规则是在一个 (N-1) * N的表格里填写字母,规则:对于每...

开灯问题和蛇形填数(可类比迷宫问题)

开灯&填数第一个问题是一个开灯问题,输入灯数和人数,第一个人将所有的灯都打开,第二个人将所有的2的倍数的灯关上,第三个人讲所有的3的倍数的灯关上(如果灯之前是关着的就打开)。。以此类推,最后显示出哪些...

NYOJ33 蛇形填数

蛇形填数 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为: 10 1...
  • xhixyy
  • xhixyy
  • 2014年11月23日 01:22
  • 69

HDU 2153 仙人球的残影(类蛇形填数)

仙人球的残影 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub...

蛇形填数(二人)变形之三角形

描述 1 2 3 4 5 12 13 14 6 11 15 7 10 8 9 跟蛇形填数一样,只是填数要求按照三角形填。注意每组数据之间用空行隔开 输入第一行有一个N,表示N组测...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:3-3蛇形填数
举报原因:
原因补充:

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