1. import java.util.Scanner;
  2.  
  3. /**
  4. * @author:(LiberHome)
  5. * @date:Created in 2019/3/4 17:13
  6. * @description:
  7. * @version:$
  8. */
  9. /*编写程序并生成10X10的螺旋矩阵*/
  10.  
  11. public class page1101 {
  12.  
  13. public void snake(int n)
  14. {
  15. int[][] data = new int[n][n];/*初始化一个数组*/
  16. int intA;/*A代表循环的次数*/
  17. int value = 1;/*这个螺旋开始的值就是1*/
  18. if(n % 2 != 0) //如果输入的数是奇数那么就循环n/2+1次,A代表循环的次数
  19. {
  20. intA = n/2 + 1;
  21. }else{
  22. intA = n/2; //偶数循环n/2次
  23. }
  24.  
  25. for(int i = 0; i < intA; i++) //从外向里循环 当到输入的一半(或者一半加一)的时候就转弯了
  26. {
  27. //从左到右循环
  28. for(int j = i; j < n - i; j++)/**/
  29. {
  30. data[i][j] = value++;
  31. }
  32.  
  33. //右列从上向下循环
  34. for(int k = i + 1; k < n - i; k++)
  35. {
  36. data[k][n-i-1] = value++;
  37. }
  38.  
  39. //从右到左
  40. for(int l = n-i-2; l >= i; l--)
  41. {
  42. data[n-i-1][l] = value++;
  43. }
  44.  
  45. //从下到上
  46. for(int m = n - i - 2; m > i; m--)
  47. {
  48. data[m][i] = value++;
  49. }
  50. }
  51.  
  52. for(int i = 0; i < n; i++) //遍历输出
  53. {
  54. for(int j = 0; j < n; j++)
  55. {
  56. System.out.print(data[i][j]+"\t");
  57. }
  58. System.out.println();
  59. }
  60. }
  61.  
  62. public static void main(String[] args) {
  63. Scanner sin = new Scanner(System.in);
  64. page1101 sn = new page1101();
  65. while(sin.hasNextInt())
  66. {
  67. int n = sin.nextInt();
  68. sn.snake(n);
  69. }
  70. }
  71. }

参考博客:https://www.cnblogs.com/iture-ming/p/5351762.html

并且在此基础上稍加修改,是结果更符合要求

螺旋矩阵 java实现(待消化)的更多相关文章

  1. LeetCode--054--区螺旋矩阵(java)

    给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素. 示例 1: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ...

  2. 【LeetCode-面试算法经典-Java实现】【059-Spiral Matrix II(螺旋矩阵II)】

    [059-Spiral Matrix II(螺旋矩阵II)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 Given an integer n, generate a ...

  3. PAT(B) 1050 螺旋矩阵(Java:24分)

    题目链接:1050 螺旋矩阵 (25 point(s)) 题目描述 本题要求将给定的 N 个正整数按非递增的顺序,填入"螺旋矩阵".所谓"螺旋矩阵",是指从左上 ...

  4. Java 第十一届 蓝桥杯 省模拟赛 螺旋矩阵

    螺旋矩阵 题目 问题描述 对于一个 n 行 m 列的表格,我们可以使用螺旋的方式给表格依次填上正整数,我们称填好的表格为一个螺旋矩阵. 例如,一个 4 行 5 列的螺旋矩阵如下: 1 2 3 4 5 ...

  5. Java实现 LeetCode 59 螺旋矩阵 II

    59. 螺旋矩阵 II 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵. 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ...

  6. Java实现 LeetCode 54 螺旋矩阵

    54. 螺旋矩阵 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素. 示例 1: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], ...

  7. Java-基础编程(螺旋矩阵&乘法表)

    package cn.rick.study; import java.io.BufferedReader;import java.io.InputStreamReader;import java.ut ...

  8. LeetCode 59. Spiral Matrix II (螺旋矩阵之二)

    Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. For ...

  9. LeetCode 54. Spiral Matrix(螺旋矩阵)

    Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral or ...

随机推荐

  1. [再寄小读者之数学篇](2014-10-18 利用 Lagrange 中值定理求极限)

    试求 $$\bex \vlm{n}n^2\sex{x^\frac{1}{n}-x^\frac{1}{n+1}},\quad x>0. \eex$$ 解答: $$\beex \bea \mbox{ ...

  2. [物理学与PDEs]第4章第3节 一维反应流体力学方程组 3.3 一维反应流体力学方程组的数学结构

    一维理想反应流体力学方程组是一阶拟线性双曲组.

  3. Linux找回root密码

    Linux忘记root密码时,密码重置步骤: 1.将虚拟机重启: 2.当进入GRUB倒计时界面,点击键盘e键: 3.点击键盘上下键选择第二行(kernel /vmlinuz-2.6.32-71.29. ...

  4. PostgreSQL快速入门

    一.PostgreSQL是什么? PostgreSQL是一个功能强大的开源对象关系数据库管理系统(ORDBMS). 用于安全地存储数据; 支持最佳做法,并允许在处理请求时检索它们. PostgreSQ ...

  5. ul li 实现层级列表显示

    实现效果如下: 实现要求具体如下: 1.标题有序号 上图标记1 2.标题下面的子集标题要有一定的缩进,且子集标题也有一定的序号,上图标记 2 3.如果子集标题内容过长,换行的时,开始的位置不能超过对应 ...

  6. windows生成库文件

    库文件的生成,包括静态库lib与动态库dll,需要改变编译输出的生成命令,可以一开始生成对应的库工程(或者在工程属性->常规->配置类型更改). 附基本对应命令: gcc –c -L .o ...

  7. 在CentOs7上部署Gunicorn

    Gunicorn 的作用与优点这里就不再赘述,如不知道你也不会找这些对吧? 正文 安装简单,直接使用pip即可 pip3 install gunicorn 昨日在 Centos 中想部署Gunicor ...

  8. 通过mysqlbinlog 恢复数据

    前提数据库开启了bin_log记录日志. 查看日志 刷新日志 flush logs; 再次查看 show binary logs; 向表中插入一条数据 现在执行delete误操作,删除所有的数据. d ...

  9. docker报错:Failed to restart docker.service: Unit not found.

    前言:我之前安装好docker了,但是关机重启后,发现docker就没了 报错:Failed to restart docker.service: Unit not found.   解决方法: 1. ...

  10. C# .Net List<T>中Remove()、RemoveAt()、RemoveRange()、RemoveAll()的区别,List<T>删除汇总

    在List<T>中删除主要有Remove().RemoveAt().RemoveRange().RemoveAll()这几个方法.下面一一介绍使用方法和注意点. 我们以List<st ...