我是靠谱客的博主 笑点低便当,最近开发中收集的这篇文章主要介绍二维数组(矩阵)对角线输出,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1,二维数组(N*N),沿对角线方向,从右上角打印到左下角如N=4: 
4*4二维数组 

Java代码   收藏代码
  1. 1 2 3 4 }  
  2. 5 6 7 8 }  
  3. 9 10 11 12 }  
  4. {13 14 15 16 }  

打印顺序 
Java代码   收藏代码
  1. 4  
  2. 3 8  
  3. 2 7 12  
  4. 1 6 11 16  
  5. 5 10 15  
  6. 9 14  
  7. 13  

要求半个小时内写出可完整运行的代码。 

这个是美团的一个小题,半个小时做出来。水平不加,花了一个小时,可能也不能和大牛比,只是自己记载吧。

代码如下:public class Erweisuzuixueduixian {
/*
 * 1,二维数组(N*N),沿对角线方向,从右上角打印到左下角如N=4: 
 * 4*4二维数组 
 *  { 1 2 3 4 }  04 03 02 01 10 20 30 40
{ 5 6 7 8 }  
{ 9 10 11 12 }  
{13 14 15 16 }  
4  
3 8  
2 7 12  
1 6 11 16  
5 10 15  
9 14  
13  */
public static void main(String[] args) {
printErweisuzuByN(5);
}


private static void printErweisuzuByN(int num) {
int[][] arrs=new int [num][num];
arrscreateArrays(arrs,num); //加载数据
ToShowPrintArrs(arrs);
}


private static void ToShowPrintArrs(int[][] arrs) {
//当前的数据  0 4 15 
//n+n-1
int length=arrs.length;
//-12
//03 02 01 00 10 20 30 
//   13 12 11
//      23 22
        //         33
for(int z=length-1;0-length-1<z;z--){//笔记本问题,大于号打不出来,代码质量请见谅 这是贴近现实的代码实现
//算xy坐标
 int y=z;
 int x=0;
 if(z<0){
 y=0;//X轴坐标
 x=0-z;
 }
for(int t=0;t<=length-x-y-1;t++){//根据X轴y轴 和 length关系 不用些过滤
System.out.print(arrs[x+t][y+t]+" ");//
}  
System.out.println();
}

}


private static void arrscreateArrays(int[][] arrs,int num) {
int tranNum=1;
for(int z=1;z<=num;z++){
int tranVal=tranNum+arrs.length-1;
int[] tranNums=new int[num];
for(int t=tranNum;t<=tranVal;t++){
tranNums[t-tranNum]=t;
if(t==tranVal){
tranNum=t+1;
}
}
arrs[z-1]=tranNums;
}
}
}



以上就是这道题,我的答案!下面是一位大牛写的,膜拜下!

http://bylijinnan.iteye.com/blog/2056301


最后

以上就是笑点低便当为你收集整理的二维数组(矩阵)对角线输出的全部内容,希望文章能够帮你解决二维数组(矩阵)对角线输出所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部