本文转载自:
http://www.iteye.com/topic/545378
一个画图程序 要求打印出n*n矩阵,如下:
(回旋数列)
引用
int i=6
1 2 3 4 5 6
20 21 22 23 24 7
19 32 33 34 25 8
18 31 36 35 26 9
17 30 29 28 27 10
16 15 14 13 12 11
class SnakePrint {
static int length = 7;
static int value = 1;
static int[][] snake = new int[length][length];
static Direction lastDirection = Direction.Right;
static enum Direction {
Right, Down, Left, Up;
}
public static void initialArray() {
int row = 0, line = 0;
for (int c = 0; c < length * length; c++) {
snake[row][line] = value;
lastDirection = findDirection(row, line);
switch (lastDirection) {
case Right:
line++;
break;
case Down:
row++;
break;
case Left:
line--;
break;
case Up:
row--;
break;
default:
System.out.println("error");
}
value++;
}
}
static Direction findDirection(int row, int line) {
Direction direction = lastDirection;
switch (direction) {
case Right: {
if ((line == length - 1) || (snake[row][line + 1] != 0))
direction = Direction.Down;
break;
}
case Down: {
if ((row == length - 1) || (snake[row + 1][line] != 0))
direction = Direction.Left;
break;
}
case Left: {
if ((line == 0) || (snake[row][line - 1] != 0))
direction = Direction.Up;
break;
}
case Up: {
if (snake[row - 1][line] != 0)
direction = Direction.Right;
break;
}
}
return direction;
}
public static void main(String[] args) {
initialArray();
// display.....
for (int i = 0; i < length; i++) {
for (int j = 0; j < length; j++) {
System.out.print(snake[i][j] + "\t");
}
System.out.println();
}
}
}
分享到:
相关推荐
从中心开始,逆时针打印 n*n 矩阵
请用C语言实现 输入N,打印N*N矩阵 比如 N = 3, 打印: 1 2 3 8 9 4 7 6 5 N = 4, 打印 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7
打印M*N螺旋矩阵 计算N*N矩阵的行列式的值
主要介绍了java实现的n*n矩阵求值及求逆矩阵算法,结合具体实例形式分析了java基于数组的矩阵定义、遍历、运算等相关操作技巧,需要的朋友可以参考下
使用穷举法,实现打印n阶魔方矩阵,实现语言是C++语言
写C程序,随机给出n*n的邻接矩阵,并打印输出邻接矩阵,以及有向图的边的个数,每个顶点的度,并判断该图中是否存在Euler回路: (1)如果为n阶,则随机产生一个n*n的邻接矩阵; (2)输出邻接矩阵,边的个数,每个...
写C程序,随机给出n*n的邻接矩阵,并打印输出邻接矩阵,以及有向图的边的个数,每个顶点的度,并判断该图中是否存在Euler回路: (1)如果为n阶,则随机产生一个n*n的邻接矩阵; (2)输出邻接矩阵,边的个数,每个...
“幻方阵”是指一个AN×N矩阵(在本题中N仅为奇数,且1≤N),以自然数1,2, ..., N2为元素进行填充,每个位置上分别放置一个元素,使每行、每列以及主、 副对角线上的元素之和都相等。 如3×3阶幻方阵,其每行、...
并用w、h记录余下未遍历“矩阵”的列数和行数。按照方向的指示水平或垂直遍历矩阵,水平或垂直遍历到顶,则对应从w或h中减去1。另外还维持startX、startY,代表下一次待遍历的元素在矩阵中的index。初始startX=0,...
魔方阵是指一个N×N矩阵(在本题中N仅为奇数,且N>1),以自然数1,2,..., N2为元素进行填充,每个位置上分别放置一个元素,使每行、每列以及主、副对角线上的元素之和都相等。 如3×3魔方阵,图在每行、每列、主对...
本文实例为大家分享了python实现矩阵打印的具体代码,供大家参考,具体内容如下 之前面试嵌入式软件的一道题,用c实现矩阵打印,考场上并没有写出来,之后总感觉自己写不出来也就没有去实现,在网上找也没能找到答案...
将螺旋分别做成了不同块划分来写的,分别使用4个三角形的形状的数字 组成一个正方形,没个 循环控制一个三角形的数字
输入两个m*n 和n*k的矩阵,计算结果
输入N, 打印 N*N 螺旋矩阵 比如 N = 3,打印: 1 2 3 8 9 4 7 6 5 N = 4,打印: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 二、思路 常规法是不断的对数据边界进行判断会很复杂,不妨考虑通过递归的解决每一...
简单的控制台打印程序,打印旋转的数字,注释很齐全,层次分明
用C++编写的回型矩阵,任意输入一个数字,然后以回型矩阵的形式显示出来
螺旋矩阵,经过分析后得出规律来记录。然后打印整个数组
题目:假设迷宫由m行n列构成,有一个入口和一个出口,入口坐标为(1,1),出口坐标为(m,n),试找出一条从入口通往出口的最短路径。设计算法并编程输出一条通过迷宫的最短路径或报告一个“无法通过”的信息。 要求:...
打印任意阶数螺旋矩阵 (提示:第一个元素为1,最后一个元素为阶数的平方,在矩阵的中心位置) 三阶示例如下: 1 2 3 8 9 4 7 6 5