如何创建一个由 2 的乘积组成的 Java 矩阵?

How to create a Java matrix that consists of numbers that are the product of 2?

我正在尝试通过用户输入定义行和列的长度来创建一个 2D 整数数组,该数组是 2 的乘积,如下所示:

1 2 4 8

2 4 8 16

4 8 16 32

8 16 32 64

我才到这里,还想不出如何让矩阵从 1 开始,并且看起来像上面那个。非常感谢你在这方面的帮助!

    Scanner scan = new Scanner(System.in);
    int n = Integer.parseInt(scan.nextLine());

    int[][] matrix = new int[n][n];

    matrix[0][0] = 1;
    int temp = 1;

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            matrix[i][j] = temp * 2;
            temp *= 2;
        }
    }

    System.out.println(Arrays.deepToString(matrix));

我会说矩阵的每个元素都是:

matrix[i][j] = (int) Math.pow(2, i+j) ;

因此,您的循环将如下所示:

for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
        matrix[i][j] = (int) Math.pow(2, i+j);
    }
}
public static void main (String[] args) throws java.lang.Exception
{
    Scanner scan = new Scanner(System.in);
int n = Integer.parseInt(scan.nextLine());

int[][] matrix = new int[n][n];

matrix[0][0] = 1;
int temp = 1;

for (int i = 0; i < n; i++) {
    temp = (int)Math.pow(2, i);
    for (int j = 0; j < n; j++) {
        matrix[i][j] = temp;
        temp *= 2;
    }
}

for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
        System.out.print(matrix[i][j]+" ");
    }
    System.out.println();
}
}