java中的简单乘法数组

时间:2013-08-29 03:43:10

标签: java loops

我想用简单的循环和数组创建一个简单的java程序。它应该是乘法表。

如果行为3且列为5,那么它应该显示行,列并且在矩阵内部应该给出行和列的乘法。输出应该是这样的。

     1    2    3    4    5
1    1    2    3    4    5
2    2    4    6    8    10
3    3    6    9    12   15

我想用简单的循环创建。我是java的新手,所以我无法弄清楚我该怎么做。请让我知道。

我已经完成了代码,直到这里。

import java.util。*;

class cross_multiplication
{

    public static void main(String a[])
        {

        System.out.println("How many rows required? : ");
        Scanner in1 = new Scanner(System.in);
        int num_rows = in1.nextInt();

        System.out.println("How many cols required? : ");
        Scanner in2 = new Scanner(System.in);
        int num_cols = in2.nextInt();

    //int arr1 [] = new int[num_rows]; 
    //int arr2 [] = new int[num_cols];      

        for(int i=0;i<num_rows;i++)
        {
                if (i==0)
                {
                    System.out.print("");
                }
                else
                {
                    System.out.print(i);            
                }
                System.out.print("\t");     

        }


    }
}

由于

3 个答案:

答案 0 :(得分:3)

您可以尝试这样的事情:

private static void print(final int[][] table){
    for(int r = 0; r < table.length; r++){
        for(int c = 0; c < table[r].length; c++){
            System.out.printf("%d\t", table[r][c]);
        }
        System.out.println();
    }
}

private static int[][] table(final int rows, final int columns){
    final int[][] array = new int[rows][columns];
    for(int r = 1; r <= rows; r++)
        for(int c = 1; c <= columns; c++)
            array[r-1][c-1] = r * c;
    return array;
}

从上面的代码中,如果要打印10x10乘法表,可以这样做:

print(table(10, 10));

输出看起来像这样:

10x10 output

答案 1 :(得分:1)

我不会给你答案,但我会给你一些伪代码

您确实正确设置了2个循环

Loop x = 1 to 3
    Loop y = 1 to 3
        //Do stuff
    End innerloop
End outerloop

这将以直线单行打印您的所有解决方案。但是你希望它显然在矩阵中。答案是简单的简单改变,只需要一行代码。在内循环的每个完整循环之后,你基本上完成了一行乘法(想想为什么)。因此解决方案是在内循环完成运行之后,在转到x的下一个外循环值之前,您需要打印一个新行。总而言之,我们有类似的东西:

Loop x = 1 to 3
    Loop y = 1 to 3
        z = x * y
        Print z + " "
    End innerloop
    Print NewLine // "\n" is the way to do that
End outerloop

并尝试

public static void print(int x, int y) {
    for (int i = 1; i <= x; i++) {

        for (int j = 1; j <= y; j++) {

            System.out.print(" " + i * j);
        }
        System.out.println();

    }
}

答案 2 :(得分:1)

要包含标题,您需要检查您是在第0行(j == 0)还是第0列(i == 0)。如何执行此操作的示例:

public static void print(int x, int y) {
  for (int i = 0; i <= x; i++) {
    for (int j = 0; j <= y; j++) {
      if(i==0) { // first row
        if(j>0) {
          System.out.printf("%d\t", j);
        }
        else { // first row, first column: blank space
          System.out.printf("\t");
        }
      }
      else {
        if(j == 0) { // first column
          System.out.printf("%d\t", i); 
        }
        else { // actually in the body of the table - finally!
          System.out.printf("%d\t" i * j);
        }
      }
    }
    System.out.println();
  }
}