在java中创建一个简单的对称表

时间:2016-08-13 10:20:43

标签: java

我目前正在研究Java中的数组。但是,我在创建对称表时遇到了问题,如下所示:

enter image description here

是否有一个简单的解决方案来创建这样的数组?这不是家庭作业,而是我正在学习的考试。我想知道怎么做。

提前致谢

这是我的代码:

int [][] table = new int [5] [8];
for (i=0;i < 5; i ++)
{
  table[i][0] = i+1;
}

for ( j = 0; j < 4; j ++)
{
   table[ i ][ j ] = ;
}

代码不多,但我不知道如何迭代它,所以所有值都是对称的。我在第一行填充了值。我正在考虑在列中循环到4,所以我在一半但是我该怎么办?

1 个答案:

答案 0 :(得分:0)

您的代码是一个开始,但不会填充所有值。你应该嵌套你的for循环,只填充左边的部分。然后可以从左侧条目镜像右侧条目。试试这个:

public static void main(String[] args)
{
    int[][] table = new int[5][8];

    for (int row = 0; row < 5; row++)
    {
        for (int column = 0; column < 4; column++)
        {
            // left side entry [row][0..3]
            // each entry is 5 more than the entry left of it 
            table[row][column] = column * 5 + row + 1;

            // right side entry [row][7..4] mirrored from corresponding entry [row][0..3]
            // i.e. column 7 <- column 0, column 6 <- column 1, etc.
            table[row][7 - column] = table[row][column];
        }
    }

    for (int row = 0; row < 5; row++)
    {
        for (int column = 0; column < 8; column++)
        {
            System.out.format("%4d", table[row][column]);
        }
        System.out.println();
    }
}

输出:

   1   6  11  16  16  11   6   1
   2   7  12  17  17  12   7   2
   3   8  13  18  18  13   8   3
   4   9  14  19  19  14   9   4
   5  10  15  20  20  15  10   5