螺旋矩阵是指一个呈螺旋状的矩阵,它的数字由第一行开始到右边不断变大,向下变大,

向左变大,向上变大,如此循环。如下图,

故,实现螺旋矩阵的思路也就跟上图所示,依次从外层向里层循环,当n为偶数时,循环n/2次;n为奇数时,循环n/2+1次。具体实现看以下代码:

import java.util.Scanner;

public class Snake {

public void snake(int n)

{

int[][] data = new int[n][n];

int intA;

int value = 1;

if(n % 2 != 0) //奇数循环n/2+1次

{

intA = n/2 + 1;

}else{

intA = n/2; //偶数循环n/2次

}

for(int i = 0; i < intA; i++) //从外向里循环

{

//从左到右循环

for(int j = i; j < n - i; j++)

{

data[i][j] = value++;

}

//右列从上向下循环

for(int k = i + 1; k < n - i; k++)

{

data[k][n-i-1] = value++;

}

//从右到左

for(int l = n-i-2; l >= i; l--)

{

data[n-i-1][l] = value++;

}

//从下到上

for(int m = n - i - 2; m > i; m--)

{

data[m][i] = value++;

}

}

for(int i = 0; i < n; i++) //遍历输出

{

for(int j = 0; j < n; j++)

{

System.out.print(data[i][j]+" ");

}

System.out.println();

}

}

public static void main(String[] args) {

Scanner sin = new Scanner(System.in);

Snake sn = new Snake();

while(sin.hasNextInt())

{

int n = sin.nextInt();

sn.snake(n);

}

}

}

测试结果:

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

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

3

1 2 3

8 9 4

7 6 5

4

1 2 3 4

12 13 14 5

11 16 15 6

10 9 8 7

9

1 2 3 4 5 6 7 8 9

32 33 34 35 36 37 38 39 10

31 56 57 58 59 60 61 40 11

30 55 72 73 74 75 62 41 12

29 54 71 80 81 76 63 42 13

28 53 70 79 78 77 64 43 14

27 52 69 68 67 66 65 44 15

26 51 50 49 48 47 46 45 16

25 24 23 22 21 20 19 18 17

螺旋矩阵java_Java实现螺旋矩阵相关推荐

  1. 螺旋矩阵java_Java 实现螺旋矩阵的方法

    今天和朋友聊起看到一个螺旋数组,困扰了他很久.本人也试了试看似挺简单的啊 后面一试还是花了些时间.现在分享一下我的实现方法. 1 :所谓的螺旋数组直接上图吧(比如是8*8的矩阵依次从63递减到0)如下 ...

  2. 蛇形矩阵 java_Java打印蛇形矩阵

    具体的题目名字忘记了,之前记得有个算法题目,根据给出的整数打印有规律的矩阵. 当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 1 ...

  3. C++以螺旋方式打印m * n矩阵的算法(附完整源码)

    C++以螺旋方式打印m * n矩阵的算法 C++以螺旋方式打印m * n矩阵的算法完整源码(定义,实现,main函数测试) C++以螺旋方式打印m * n矩阵的算法完整源码(定义,实现,main函数测 ...

  4. 悠然乱弹:螺旋矩阵和蛇型矩阵的悠然版实现

    2019独角兽企业重金招聘Python工程师标准>>> 螺旋矩阵和蛇型矩阵,是两个比较有趣的矩阵,有许多的公司面试题中有出现,这两个题的答案也有许多种,简单问一下度娘,就各自有N种实 ...

  5. java 螺旋方阵_Java for 螺旋矩阵和蛇型矩阵

    螺旋矩阵和蛇型矩阵,是两个比较有趣的矩阵问题,这两个问题的答案也有许多种,简单问一下Baidu,就各自有N种实现,来源也非常丰富,比如CSDN.ITEYE.等等,当然也包括著名的OSC,但是整体看下来 ...

  6. 计算机视觉三维重建的几何基础:坐标系与关键矩阵(基础矩阵、本质矩阵、单应矩阵)...

    作者丨李迎松@知乎 来源丨https://zhuanlan.zhihu.com/p/159194599 编辑丨3D视觉工坊 你站在桥上看风景, 看风景人在楼上看你. 明月装饰了你的窗子, 你装饰了别人 ...

  7. sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并自定义子分类器的权重(weights)、计算融合模型的混淆矩阵、可视化混淆矩阵

    sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并自定义子分类器的权重(weights).计算融合模型的混淆矩阵.可视化混淆矩阵 目 ...

  8. sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并计算融合模型的混淆矩阵、可视化混淆矩阵(confusion matrix)

    sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并计算融合模型的混淆矩阵.可视化混淆矩阵(confusion matrix) 目录

  9. sklearn使用投票器VotingClassifier算法构建多模型融合的硬投票器分类器(hard voting)并计算融合模型的混淆矩阵、可视化混淆矩阵(confusion matrix)

    sklearn使用投票器VotingClassifier算法构建多模型融合的硬投票器分类器(hard voting)并计算融合模型的混淆矩阵.可视化混淆矩阵(confusion matrix) 目录

最新文章

  1. 深度学习方法笔记之(一):SVM的基本模型
  2. memcache多语言unix socket访问
  3. MySQL事务及锁机制大揭秘 - 公开课笔记
  4. Caffe查看每一层学习出来的pattern
  5. [MEGA DEAL] Ultimate Java开发和认证指南(59%折扣)
  6. nfc sim android8,Android NFC相关资料之MifareClassic卡(读写)
  7. TCP/IP网络编程-前三章学习笔记
  8. 脚本——监控打印服务
  9. 从神话诗歌到奇幻科学的人类探索史·《月亮》·总篇(简版)
  10. 客车网上订票系统项目--在线预约、个人中心我的订单
  11. github中文件夹名带数字,git下来为空文件夹
  12. verilog Booth算法乘法器的实现(有无符号)
  13. win7 修改html文件图标,如何更改文件图标,教您Win7如何更改图标
  14. wifi认证过程wpa/wpa2
  15. lisp实战文库_lisp编程实例
  16. 二维数组实现n阶方阵
  17. 【金猿产品展】Smartbi一站式大数据分析平台——更聪明的大数据分析软件
  18. 关于网红直播带货系统的开发流程及难点汇总
  19. CTFshow刷题日记-MISC-图片篇(上)基础操作和信息附加
  20. 【译文】抽象漏洞法则

热门文章

  1. 第五次作业-需求原型改进
  2. Lambda表达式秒用——SerializedLambda序列化
  3. outguess 使用方法
  4. 【历史上的今天】11 月 15 日:全球首款商用微处理器;微软进军游戏界;ICQ 诞生
  5. 桥梁防撞智能预警系统方案
  6. 运行单机游戏时,缺少D3DCompiler_43.dll
  7. 好消息!华为EUV光刻新专利公开
  8. 离散作业用c语言编写覆盖,c语言论文3000字_优秀论文范文3000字_大一论文范文3000字...
  9. 关于电脑电流滋滋声解决方法
  10. 【Java】Java获取昨天日期的正确姿势