有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

仅适用于2乘法表的Java编程

仅适用于2的乘法表

这是我的代码:

public class nest
{
    public static void main (String[] args)
    {
        for (int row=1; row<=5; row++)
        {
            for (int column=1; column<=10; column++)
            {
                System.out.print(row*++column +"\t");

            }
          System.out.println();
        }
    }
}

这是我的目标结果:

2   4   6   8   10  
12  14  16  18  20  
22  24  26  28  30  
32  34  36  38  40  
42  44  46  48  50  

但我明白了:

2   4   6   8   10  
4   8   12  16  20  
6   12  18  24  30  
8   16  24  32  40  
10  20  30  40  50  

请帮帮我,我还在学Java


共 (6) 个答案

  1. # 1 楼答案

    与上面的类似。一个简单的

    public static void main(String[] args) {
        int tableOf = 2;
        int currIter = tableOf;
        for(int i = 1; i <= 5 ; i++) {
            currIter = tableOf * i;
            for(int j = 1; j <= 5 ; j++) {
                System.out.print((currIter * j) + "\t");
            }
            System.out.println();
        }
    }
    
  2. # 2 楼答案

    为了简单起见,你可以这样做:

        public class A{
    
       public static void main(String[] args){
           int k=2;
          for (int row=1; row<=5; row++)
                   {
                       for (int column=1; column<=5; column++)
                       {
                           System.out.print(k+"\t");
    k=k+2;
                       }
                     System.out.println();
                   }
               }
           }
    
  3. # 3 楼答案

    这里的诀窍在于,在给定行和列索引的情况下,能够清楚地表达每个单元格中的值的公式。假设我们从零开始计算行和列,那么公式是:

    (2 + 10*row + 2*column)
    

    这个公式表示,从初始值2开始,向下移动一行,我们增加10,向右移动一列,我们增加2。这将导致以下代码:

    for (int row=0; row < 5; ++row) {
        for (int column=0; column < 5; column++) {
            System.out.print((2 + 10*row + 2*column) + "\t");
        }
          System.out.println();
    }
    

    Demo

  4. # 4 楼答案

    您还可以尝试(假设您使用的是Java 8+),这是一个基于每五个元素使用lambda和三元组断行的公式,我们可以在一条语句中这样做。生成1到25的范围,将该范围内的每个值乘以2,然后打印它(如果不是5的倍数,则为制表符,否则为换行符)。比如

    IntStream.rangeClosed(1, 25).map(i -> i * 2)
            .forEachOrdered(i -> System.out.print(i + ((i % 5 != 0) ? "\t" : "\n")));
    
  5. # 5 楼答案

    你可以通过使用一个额外的变量来实现你的结果

    public class nest
    {
    public static void main (String[] args)
    { int table= 0;
        for (int row=1; row<=5; row++)
        {
            for (int column=1; column<=5; column++)
            {
                table+=2;
                System.out.print(table +"\t");
    
            }
          System.out.println();
        }
    }
    }
    

    循环可用于定义打印表的行和列。希望对你有所帮助

  6. # 6 楼答案

    你的java代码很棒!看起来你只是有点数学逻辑问题

    让我们看一下以下内容:

     1 2 3 4 5
    1
    2
    3
    4
    5
    

    这些是您在循环中遍历的行和列

    2 4 6 8 10
    

    这应该是你的第一行

    12 14 16 18 20
    

    应该是你的第二行。让我们看看你的方程式

    row*++column
    

    ++column表示column+1=2

    1*2等于2

    我们要12个

    如果我们把循环的范围保持在5以内,那就简单多了

    public class nest
    {
        public static void main (String[] args)
        {
            for (int row=1; row<=5; row++)
            {
                for (int column=1; column<=5; column++)
                {
                    System.out.print(logic math stuff +"\t");
    
                }
              System.out.println();
            }
        }
    }
    

    从预期输出来看,数字仅为1-25*2

    让我们先试着打印1-25

    列为1-5,所以第一行就是列

    System.out.print(column + "\t");
    
    1 2 3 4 5
    

    很简单。现在在第二排我们需要678910

    列仍然是1-5,但行现在是2

    第一个数字应该是6,那我们怎么去呢

    行=2 列=1

    我们的列宽是5,所以每一行我们都必须加5*(第1行)

    System.out.print((column + 5 * (row-1)) + "\t");
    

    这张照片分5行打印1-25张

    现在加倍

    System.out.print((column + 5 * (row-1)) * 2 + "\t");