JAVA - 矩阵色环

时间:2015-09-22 22:01:35

标签: java matrix

我需要以类似彩虹的方式显示颜色矩阵。 我找到了正确的方法来画画"在system.out中。

矩阵应填充" 0"。那些" 0"应该有颜色的那些。

但是我没有想到如何实现打印彩虹的方法。 这是我需要的图像: http://i.imgur.com/taulntW.png

有什么想法吗?

谢谢!

PD: 我设法做到这一点,但我认为更多的数字和视觉上友好的数字#34; 此代码将使用数字填充矩阵,外部环将具有" 1",第二个环将具有" 2",第3个环将具有" 3" .. .. 等等。 这是代码:

int counter = mat.length;

    for (int i = 0; i < mat.length - 1; i++) {
        for (int j = i; j < counter; j++) {
            for (int k = i; k < counter; k++) {

                mat[j][k] += 1;
            }

        }
        counter--;

    }

2 个答案:

答案 0 :(得分:1)

如果您想要的是这样的输出:

0000000
0111110
0122210
0123210
0122210
0111110
0000000

您可以使用嵌套循环执行此操作。我没有过多的循环条件语句就做到了。你可以这样做:

int r = 7;
int c = 7;

int[][] matrix = new int[r][c];
for(int x=0; x<=r; x++)
    for(int y=0; y<r-x; y++){
        matrix[x][y] = Math.min(x, y);         //Update 1st diagonal half of the matrix
        matrix[r-x-1][c-y-1] = matrix[x][y];   //Update the next half (follow 1st half) 
    }

这可能是最快的方法之一。我们只需要遍历一半的元素,并且不需要条件语句。最重要的是,您可以对彩色数组应用相同的概念。

答案 1 :(得分:0)

真的取决于矩阵有多大。您可以制作循环和广告条件子句。基本上编程中的矩阵将是二维数组。在java中:

int[][] arr= new int [5][5];

这将创建一个5乘5的矩阵,您可以使用内部for循环填充

for(int i =0; i < 5; i++){
   for(int  a =0; a< 5 ; a++){
     arr[i][a] = something;
   }
}