java如何实现顺时针/逆时针打印矩阵操作
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编给大家分享一下java如何实现顺时针/逆时针打印矩阵操作,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!java实现的顺
千家信息网最后更新 2026年11月01日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安全错误
数据库的锁怎样保障安全
互联网科技园
小米移动互联网科技园
为想互联网科技怎么样
互联网电商科技
广州互联网科技公司
腾讯科技 互联网女皇
新浪科技互联网
丰台科技园 互联网公司
团飞科技与伯堂互联网服务平台
上海宁丞科技互联网
重庆互联网医院沙龙医盟信息科技
搜狐科技互联网
青海科技产业互联网发展
用友工业互联网科技发展
互联网科技实习生岗位
互联网科技接地气
互联网科技机房
云南互联网科技学费
同城互联网络科技
互联网高科技绘画
朗新科技与工业互联网
西安互联网科技
为想互联网科技
互联网科技股票
广西互联网科技公司
上海宁丞科技互联网
畅思互联网科技
河南住房之家互联网科技
启辰互联网科技
数字科技和互联网金融哪个好