韩世雷 程序员专栏

/* * 转方阵对一个方阵转置,就是把原来的行号变列号,原来的列号变行号例如,如下的方阵: 1 2 3 4 5 6 7 8 9 10 11 1213 14 15 16转置后变为: 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16但,如果是对该方阵顺时针旋转(不是转置),却是如下结果:13 9 5 114 10 6 215 11 7 316 12 8 4下面的代码实现的功能就是要把一个方阵顺时针旋转。 */public class Demo03 {// 矩阵顺时针旋转public static void rotation(int[][] n,int [][] m,int i,int j){int t = j;// 标记最后一行的位置if(i>=n.length) return;for(int k=0;k<n.length;k++){m[i][k] = n[j–][i];// 解决一行}rotation(n,m,++i,t);// 递归解决下一行}// 输出矩阵public static void print(int[][] t){for(int[] x: t){for(int y:x){System.out.print(y+"\t");}System.out.println();}}public static void main(String[] args){int[][] n = {{1 ,2 ,3 ,4 },{5 ,6 ,7 ,8 },{9 ,10,11,12},{13,14,15,16}};print(n);// 显示原矩阵int len = n.length;int[][] m = new int[len][len];// 目标矩阵rotation(n,m,0,len-1);// 矩阵顺时针旋转System.out.println("顺时针旋转结果:");print(m);// 显示目标矩阵}}运行结果:12345678910111213141516顺时针旋转结果:13951141062151173161284

,生活若剥去理想、梦想、幻想,那生命便只是一堆空架子

韩世雷 程序员专栏

相关文章:

你感兴趣的文章:

标签云: