java如何实现顺时针/逆时针打印矩阵操作
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,小编给大家分享一下java如何实现顺时针/逆时针打印矩阵操作,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!java实现的顺
千家信息网最后更新 2025年11月07日java如何实现顺时针/逆时针打印矩阵操作
小编给大家分享一下java如何实现顺时针/逆时针打印矩阵操作,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
java实现的顺时针/逆时针打印矩阵操作。具体如下:
public class SnakeMatrix { /** * 定义矩阵的阶数 */ private int n; //填充矩阵的值 private int k = 1; private int[][] data; /** * 定义矩阵移动的方向 */ public enum Direction { left, right, up, down, } SnakeMatrix(int n) { this.n = n; data = new int[n][n]; } public void clockwisePrintMatrix() { //定义行数 int rowLen = data.length; //定义列数 int columnLen = data.length; //移动方向 Direction direction = Direction.right; //定义上边界 int upBound = 0; //定义下边界 int downBound = rowLen - 1; //定义左边界 int leftBound = 0; //定义右边界 int rightBound = columnLen - 1; //矩阵当前行数 int row = 0; //矩阵当前列数 int column = 0; while (true) { data[row][column] = k++; if (upBound == downBound && leftBound == rightBound) { // System.out.println(" upBound :"+upBound +" downBound :"+downBound+" leftBound :"+leftBound +" rightBound :"+rightBound); break; } switch (direction) { case right: if (column < rightBound) { ++column; } else { ++row; direction = Direction.down; ++upBound; } break; case down: if (row < downBound) { ++row; } else { --column; direction = Direction.left; --rightBound; } break; case up: if (row > upBound) { --row; } else { ++column; direction = Direction.right; ++leftBound; } break; case left: if (column > leftBound) { --column; } else { --row; direction = Direction.up; --downBound; } break; default: break; } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { System.out.printf("%2d%s", data[i][j], " "); } System.out.println(); } } public void anticlockwisePrintMatrix() { int rowLen = data.length; int columnLen = data.length; int leftBound = 0; int rightBound = columnLen - 1; int upBound = 0; int downBound = rowLen - 1; int row = 0; int column = 0; Direction direction = Direction.down; while (true) { data[row][column] = k++; if (rightBound == leftBound && upBound == downBound) { break; } switch (direction) { case down: if (row < downBound) { row++; } else { column++; direction = Direction.right; leftBound++; } break; case right: if (column < rightBound) { column++; } else { row--; direction = Direction.up; downBound--; } break; case up: if (row > upBound) { row--; } else { direction = Direction.left; column--; rightBound--; } break; case left: if (column > leftBound) { column--; } else { direction = Direction.down; row++; upBound++; } break; default: break; } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { System.out.printf("%2d%s", data[i][j], " "); } System.out.println(); } }}首先呢上面是定义一个工具类,
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); int number = 5; SnakeMatrix snakeMatrix = new SnakeMatrix(number); snakeMatrix.anticlockwisePrintMatrix(); //snakeMatrix.clockwisePrintMatrix(); }}直接进行使用,有两个方法,一个正序一个倒序
以上是"java如何实现顺时针/逆时针打印矩阵操作"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
矩阵
时针
逆时针
篇文章
内容
方向
边界
j++
移动
不怎么
两个
倒序
前列
右边
大部分
工具
方法
更多
知识
行业
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库常用的三种数据模型是
青岛市产业园区软件开发商
校园网连不上web服务器
数据库触发器代码
日语专业学软件开发
国家网络安全宣传 校园
测试服务器端口的速度
软件开发社群
连接云服务器的拓扑图绘制
云数据库服务 价格
互联网医疗生物科技
还有哪些保障支付网络安全的方法
镇江软件开发怎么样
衡阳游戏软件开发收费
国家网络安全周举办时间
网络安全实施交付工程师
求软件开发
服务器 蓝屏 安全模式
服务器远程桌面连接不上
机架式服务器更换内存条
网络安全局的几个能力
内蒙古数据库脱敏
工信部网络安全申报
web 服务器 搭建
靠谱的win10电脑服务器租用
湖南 戏曲数据库
拼阿里云服务器
数据库 面试
最高院加强舆情网络安全
静安区电商软件开发诚信合作