二维数组(矩阵)对角线输出
2017-05-06 01:30
176 查看
1,二维数组(N*N),沿对角线方向,从右上角打印到左下角如N=4:
4*4二维数组
Java代码
![](http://www.iteye.com/images/icon_star.png)
{ 1 2 3 4 }
{ 5 6 7 8 }
{ 9 10 11 12 }
{13 14 15 16 }
打印顺序
Java代码
![](http://www.iteye.com/images/icon_star.png)
4
3 8
2 7 12
1 6 11 16
5 10 15
9 14
13
要求半个小时内写出可完整运行的代码。
这个是美团的一个小题,半个小时做出来。水平不加,花了一个小时,可能也不能和大牛比,只是自己记载吧。
代码如下:public class Erweisuzuixueduixia
4000
n {
/*
* 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
4*4二维数组
Java代码
![](http://www.iteye.com/images/icon_star.png)
{ 1 2 3 4 }
{ 5 6 7 8 }
{ 9 10 11 12 }
{13 14 15 16 }
打印顺序
Java代码
![](http://www.iteye.com/images/icon_star.png)
4
3 8
2 7 12
1 6 11 16
5 10 15
9 14
13
要求半个小时内写出可完整运行的代码。
这个是美团的一个小题,半个小时做出来。水平不加,花了一个小时,可能也不能和大牛比,只是自己记载吧。
代码如下:public class Erweisuzuixueduixia
4000
n {
/*
* 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
相关文章推荐
- 二维数组(矩阵)对角线输出
- 编写程序输入一个n*n的矩阵,求出两条对角线元素值之和(注意把输入的元素写入二维数组的方式)
- 按矩阵对角线输出问题
- 编写一个C#程序,要求定义一个行数和列数相等的二维数组, 并执行初始化,然后计算并输出数组两条对角线上的元素之和。
- 运用Java二维数组打印“魔方阵”。所谓魔方阵是指这样的矩阵,它的每一行、每一列和对角线之和均相等,要求打印1~25之间由自然数构成的魔方阵。
- 二维数组蛇形和Z形矩阵输出
- 笔试题五:实现输出矩阵 二维数组
- 计算整数n阶矩阵的主/副对角线元素之和并输出
- 将对称矩阵压缩存储,实现矩阵相乘,输出相乘后结果(用二维数组)
- java二维数组求每行最大值,每列最小值,及输出数组主对角线上的元素
- 第14周-OJ平台-输出矩阵对角线和
- 已知一个6*6的矩阵(方阵),把矩阵二条对角线上的元素值加上10,然后输出这个新矩阵
- java实现矩阵的对角线输出
- 按矩阵对角线输出问题
- 对角线输出二维数组
- 【程序29】 TestAdd3.java 题目:求一个3*3矩阵对角线元素之和 1.程序分析:利用双重for循环控制输入二维数组, //再将a[i][i]累加后输出。
- 实现矩阵对角线输出
- 二维数组计算4*4矩阵对角线上的元素之和
- 19.把1~100存到二维数组a[10][10]中,并按二维矩阵形式输出
- 二维数组的主次对角线输出与逆置