矩阵,有意思。

来源:互联网 发布:比尔盖茨编程一小时 编辑:程序博客网 时间:2024/06/11 19:52
public class Test4 {/*01--02  06--07  15--16  28--29         /   /   /   /   /   /   /03  05  08  14  17  27  30  43       | /   /   /   /   /   /   / |04  09  13  18  26  31  42  44        /   /   /   /   /   /   /10  12  19  25  32  41  45  54       | /   /   /   /   /   /   / |11  20  24  33  40  46  53  55       /   /   /   /   /   /   /21  23  34  39  47  52  56  61     | /   /   /   /   /   /   / |22  35  38  48  51  57  60  62       /   /   /   /   /   /   /36--37  49--50  58--59  63--64     */ public static void main(String[] args) {Test4 t=new Test4();t.printData(t.test2(8));}//核心算法    public int[][] test2(int n){int arr[][]=new int[n][n];for (int i = 0; i < n; i++) {for (int j=0,c=i;j<=i&&c>=0;j++,c--) {if(i%2==0){  //偶数行 if(c==i){ //建立与上次循环的关系 if(c==0)arr[c][j]=1; else       arr[c][j]=arr[c-1][j]+1; } else         arr[c][j]=arr[c+1][j-1]+1;}else{ //奇数行     if(c==i)        arr[j][c]=arr[j][c-1]+1;  //建立与上次循环的关系     else       arr[j][c]=arr[j-1][c+1]+1;}}   }return arr;}//打印数据public void printData(int arr[][]){int n=arr.length;for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {if(arr[i][j]>=10)  System.out.print(arr[i][j]+" ");else  if(arr[i][j]!=0)  System.out.print("0"+arr[i][j]+" ");}System.out.println();}}}

这道题目我感肯定大家会过瘾,希望有高手可以想出更简单的方法,我的思路就是斜着看,通过斜着的循环打印出该效果“

我的效果如图:



0 0
原创粉丝点击