锁定老帖子 主题:CRM后端JAVA工程师-美团
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2015-02-03
public static int[][] intary=new int[][]{{ 1 ,2, 3, 4 },{ 5 ,6 ,7, 8 }, { 9 ,10 ,11 ,12 }, {13, 14, 15, 16 } }; public static int len=intary.length; public static void p(int[] local){ for(int i=0;i<len;i++){ if(local[i]>=0&&local[i]<len) System.out.print(intary[i][local[i]]+" "); } } public static void main(String args[]){ int[] local=new int[len]; for(int i=0;i<len;i++){ local[i]=len+i; } for(int i=0;i<2*len;i++){ p(local); System.out.println(); for(int j=0;j<len;j++){ local[j]=local[j]-1; } } } |
|
返回顶楼 | |
发表时间:2015-02-26
最后修改:2015-02-26
需求转换为如何逐行打印如下信息
// a[0][3] // a[0][2],a[1][3] // a[0][1],a[1][2],a[2][3] // a[0][0],a[1][1],a[2][2],a[3][3] // a[1][0],a[2][1],a[3][2] // a[2][0],a[3][1], // a[3][0] 所以可以根据数组index和数组元素在输出中的横竖坐标抽出规则 这个思路应该最好理解,大众思维.... public class Printer { public static final int ARRAY_LENGTH = 12; public static void main(String[] args) { int[][] a = initArray(); System.out.println("\n----------------Print-----------------------"); int totalOutputLineNumber = ARRAY_LENGTH * 2 - 1; for (int lineNumber = 1; lineNumber <= totalOutputLineNumber; lineNumber++) { int columns = columnsforThisLine(lineNumber); if (lineNumber <= ARRAY_LENGTH) { int firstD = 0; for (int j = columns - 1; j >= 0; j--) { // System.out.print("a[" + firstD + "][" + (3 - j) + "]"); System.out.print(a[firstD][(ARRAY_LENGTH - 1 - j)] + " "); firstD++; } System.out.print("\n"); } if (lineNumber > ARRAY_LENGTH) { int firstD = lineNumber - ARRAY_LENGTH; int secondD = 0; for (int j = columns - 1; j >= 0; j--) { // System.out.print("a[" + firstD + "][" + secondD + "]"); System.out.print(a[firstD][secondD] + " "); firstD++; secondD++; } System.out.print("\n"); } } } private static int[][] initArray() { System.out.println("-----------------Init Array----------------------"); int a[][] = new int[ARRAY_LENGTH][ARRAY_LENGTH]; int initialNumber = 1; for (int i = 0; i < ARRAY_LENGTH; i++) { for (int j = 0; j < ARRAY_LENGTH; j++) { a[i][j] = initialNumber; initialNumber++; } } for (int[] is : a) { for (int i : is) { System.out.print(i + " "); } System.out.print("\n"); } System.out.println("---------------------------------------"); return a; } private static int columnsforThisLine(int i) { if (i <= ARRAY_LENGTH) { return i; } else { return ARRAY_LENGTH * 2 - i; } } } |
|
返回顶楼 | |