`
- 浏览:
1951 次
- 性别:
- 来自:
重庆
-
这是深圳某处的一个面试题,要求打印出如下格式:
- int i=5;
- 1 2 3 4 5
- 16 17 18 19 6
- 15 24 25 20 7
- 14 23 22 21 8
- 13 12 11 10 9
-
- 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
解决方案1:
- public class SnakePrint {
-
- private int orient = 0, length = 0, x = 0, y = 0;
-
- private int[][] orients = { { 0, 1 }, { 1, 0 }, { 0, -1 }, { -1, 0 } };
- private int[][] arrays;
-
- public SnakePrint(int length) {
- this.length = length;
- arrays = new int[length][length];
- }
-
-
- private int[] nextOrient(int[] curOrient) {
- int nextX = x + curOrient[0], nextY = y + curOrient[1];
-
-
- if (nextX < 0 || nextX >= length || nextY < 0 || nextY >= length
- || arrays[nextX][nextY] != 0) {
- orient = ++orient % 4;
- return orients[orient];
- }
-
- return curOrient;
- }
-
- public void print() {
- int[] curOrient = orients[orient];
- for (int i = 1; i <= length * length; i++) {
- arrays[x][y] = i;
- curOrient = nextOrient(curOrient);
- x += curOrient[0];
- y += curOrient[1];
- }
-
- for (int i = 0; i < length; i++) {
- for (int j = 0; j < length; j++) {
- System.out.printf("%4d", arrays[i][j]);
- }
- System.out.println();
- }
- }
-
- public static void main(String[] args) {
- SnakePrint snakePrint = new SnakePrint(6);
- snakePrint.print();
- }
- }
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
用C语言编写回旋矩阵,可以产生任意阶的回旋矩阵,包括矩阵,以及图形的表示,直观
这是一个输出回旋矩阵的C语言程序,只要输入矩阵的大小然后按enter键就可以输出顺时针方向的回旋矩阵
今天小编就为大家分享一篇python实现回旋矩阵方式(旋转矩阵),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
求N阶回旋矩阵,在给定阶数的二维数组外构建搜索边界,使用试探法求解
一个C#的算法,实现数字的回旋排列,从大到小,顺时针排列,核心算法适用于其他语言
我们提出了一类新的N = 4 $$ \ ... 这些产生通常与通量的存在相关的动力学现象,例如模糊膜,内部回旋加速器运动和约束弦的出现。 我们还展示了如何通过在三个球体上进行三维超对称颤动量规理论的降维来获得这些模型。
CCD)摄像机可以获得高炉回旋区内累积的二维温度辐射图像,然后将高炉回旋区均分成若干小块,利用数学模型近似模拟回旋区内的辐射传热过程并建立矩阵方程,通过求解方程获得高炉回旋区内的三维温度场. 在模拟辐射...
输入输出的矩阵边长,即可按提示操作。主要实现数组与for循环配合使用的高级算法。
在最流行的替代方案中,多通道NMF(MNMF)和基于受约束的空间协方差模型的进一步推导已成功地用于分离多麦克风回旋混合物。 这封信提出了通过考虑具有Ray-Space转换信号的混合模型来提出MNMF扩展,其中幅度数据成功...
pdf影印清晰版 第一章 误差与数据处理 第二章 常用分布函数和分位数的计算 第三章 随机数的产生和检验 ...第五章 统计计算中常用的矩阵算法 第六章 多元线形回归的计算方法 第七章 非线形回归分析及其算法
导出强耦合磁极化子的第一内部激发态能量、激发能量和从第一内部激发态到基态的跃迁谱线频率随量子点的横向和纵向有效受限长度、磁场的回旋频率和电子-声子耦合强度的变化关系。数值计算结果表明:第一内部激发态能量...
类固醇| 回旋库 DMT | 数字地形模型库 DXF | 用于dxf文件的库 GA2D | 几何算法库 Helmert2D | 二维Helmert变换 矩阵| 矩阵库修改| ...
lru缓存leetcode 算法题 Javascript 中 Leetcode 算法问题的答案。 魔法弦 查找排列 按频率排序字符 数组中两个数字的最大异或 对角线遍历 下一个大元素 ...矩阵 ...排序矩阵中的第 ...回旋镖数量 最大连续数 II