螺旋矩阵java_Java实现螺旋矩阵
螺旋矩阵是指一个呈螺旋状的矩阵,它的数字由第一行开始到右边不断变大,向下变大,
向左变大,向上变大,如此循环。如下图,
故,实现螺旋矩阵的思路也就跟上图所示,依次从外层向里层循环,当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实现螺旋矩阵相关推荐
- 螺旋矩阵java_Java 实现螺旋矩阵的方法
今天和朋友聊起看到一个螺旋数组,困扰了他很久.本人也试了试看似挺简单的啊 后面一试还是花了些时间.现在分享一下我的实现方法. 1 :所谓的螺旋数组直接上图吧(比如是8*8的矩阵依次从63递减到0)如下 ...
- 蛇形矩阵 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 ...
- C++以螺旋方式打印m * n矩阵的算法(附完整源码)
C++以螺旋方式打印m * n矩阵的算法 C++以螺旋方式打印m * n矩阵的算法完整源码(定义,实现,main函数测试) C++以螺旋方式打印m * n矩阵的算法完整源码(定义,实现,main函数测 ...
- 悠然乱弹:螺旋矩阵和蛇型矩阵的悠然版实现
2019独角兽企业重金招聘Python工程师标准>>> 螺旋矩阵和蛇型矩阵,是两个比较有趣的矩阵,有许多的公司面试题中有出现,这两个题的答案也有许多种,简单问一下度娘,就各自有N种实 ...
- java 螺旋方阵_Java for 螺旋矩阵和蛇型矩阵
螺旋矩阵和蛇型矩阵,是两个比较有趣的矩阵问题,这两个问题的答案也有许多种,简单问一下Baidu,就各自有N种实现,来源也非常丰富,比如CSDN.ITEYE.等等,当然也包括著名的OSC,但是整体看下来 ...
- 计算机视觉三维重建的几何基础:坐标系与关键矩阵(基础矩阵、本质矩阵、单应矩阵)...
作者丨李迎松@知乎 来源丨https://zhuanlan.zhihu.com/p/159194599 编辑丨3D视觉工坊 你站在桥上看风景, 看风景人在楼上看你. 明月装饰了你的窗子, 你装饰了别人 ...
- sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并自定义子分类器的权重(weights)、计算融合模型的混淆矩阵、可视化混淆矩阵
sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并自定义子分类器的权重(weights).计算融合模型的混淆矩阵.可视化混淆矩阵 目 ...
- sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并计算融合模型的混淆矩阵、可视化混淆矩阵(confusion matrix)
sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并计算融合模型的混淆矩阵.可视化混淆矩阵(confusion matrix) 目录
- sklearn使用投票器VotingClassifier算法构建多模型融合的硬投票器分类器(hard voting)并计算融合模型的混淆矩阵、可视化混淆矩阵(confusion matrix)
sklearn使用投票器VotingClassifier算法构建多模型融合的硬投票器分类器(hard voting)并计算融合模型的混淆矩阵.可视化混淆矩阵(confusion matrix) 目录
最新文章
- 深度学习方法笔记之(一):SVM的基本模型
- memcache多语言unix socket访问
- MySQL事务及锁机制大揭秘 - 公开课笔记
- Caffe查看每一层学习出来的pattern
- [MEGA DEAL] Ultimate Java开发和认证指南(59%折扣)
- nfc sim android8,Android NFC相关资料之MifareClassic卡(读写)
- TCP/IP网络编程-前三章学习笔记
- 脚本——监控打印服务
- 从神话诗歌到奇幻科学的人类探索史·《月亮》·总篇(简版)
- 客车网上订票系统项目--在线预约、个人中心我的订单
- github中文件夹名带数字,git下来为空文件夹
- verilog Booth算法乘法器的实现(有无符号)
- win7 修改html文件图标,如何更改文件图标,教您Win7如何更改图标
- wifi认证过程wpa/wpa2
- lisp实战文库_lisp编程实例
- 二维数组实现n阶方阵
- 【金猿产品展】Smartbi一站式大数据分析平台——更聪明的大数据分析软件
- 关于网红直播带货系统的开发流程及难点汇总
- CTFshow刷题日记-MISC-图片篇(上)基础操作和信息附加
- 【译文】抽象漏洞法则
热门文章
- 第五次作业-需求原型改进
- Lambda表达式秒用——SerializedLambda序列化
- outguess 使用方法
- 【历史上的今天】11 月 15 日:全球首款商用微处理器;微软进军游戏界;ICQ 诞生
- 桥梁防撞智能预警系统方案
- 运行单机游戏时,缺少D3DCompiler_43.dll
- 好消息!华为EUV光刻新专利公开
- 离散作业用c语言编写覆盖,c语言论文3000字_优秀论文范文3000字_大一论文范文3000字...
- 关于电脑电流滋滋声解决方法
- 【Java】Java获取昨天日期的正确姿势