三角乘法表

时间:2014-10-19 02:39:17

标签: java multiplication

我是Java的新手。我试图制作一个看起来像这样的三角形乘法表:

输入第7行

1   2   3   4   5   6   7
1
2   4
3   6   9
4   8   12  16  
5   10  15  20 25
6   12  18  24 30 36
7   14  21  28 35 42 49

每行/每列都必须编号,我不知道如何做到这一点。我的代码看起来似乎已经过时了,因为我得到了一个不包含正确值的无限循环。您将在下面找到我的代码。

public class Prog166g
{
  public static void main(String args[])
   {
    int userInput, num = 1, c, d;
    Scanner in = new Scanner(System.in);

    System.out.print("Enter # of rows "); // user will enter number that will define output's           parameters
    userInput = in.nextInt();

    boolean quit = true;
    while(quit)
    {
        if (userInput > 9)
        {
            break;
        }
        else
        {
        for ( c = 1 ; c <= userInput ; c++ )
        { System.out.println(userInput*c);
          for (d = 1; d <= c; d++) // nested loop required to format numbers and "triangle" shape
          {
                System.out.print(EasyFormat.format(num,5,0));
          }
        }
    }
    }
   quit = false;
   }
} 

EasyFormat指的是一个应该正确格式化图表的外部文件,所以请忽略它。如果有人可以指出我正确的方向,修复我现有的代码并添加代码来编号列和行,这将是非常感谢!

1 个答案:

答案 0 :(得分:0)

两个嵌套的for循环可以解决这个问题:

for (int i = 1; i < 8; i++) {
    System.out.printf("%d\t", i);
}
System.out.println();
for (int i = 1; i < 8; i++) {
    for (int j = 1; j <= i; j++) {
        System.out.printf("%d\t", i * j);
    }
    System.out.println();
}

<强>输出

1   2   3   4   5   6   7   
1   
2   4   
3   6   9   
4   8   12  16  
5   10  15  20  25  
6   12  18  24  30  36  
7   14  21  28  35  42  49