【问题标题】:how to print a triangle style result pattern如何打印三角形样式的结果模式
【发布时间】:2016-10-23 15:08:08
【问题描述】:

我在使用 for 或 while 循环制作三角形样式结果时遇到了困难。它应该打印:

  • 2
  • 2 4
  • 2 4 6
  • 2 4 6 8
  • 2 4 6 8 10....

这就是我目前所拥有的,有什么建议吗?非常感谢。

public static void main(String[] args) {    
    for (int row = 2; row < 10; row+=2) {
        for (int col = 1; col < row ; col++ )
            System.out.print(col * row + "\t");
        System.out.println();                       
    }
}

【问题讨论】:

  • col 范围从 1 到 row(所以,1、2、3,...,第 1 行)。 row 的范围从 2 到 10(所以,2、4、6、8)。您正在打印出col * row。假设row 是6。这将产生1 * 62 * 63 * 6 等,但您说您希望您的子序列始终从2 开始。你看出什么问题了吗?
  • 我正在使用乘法表 xD 我看到了

标签: java for-loop while-loop


【解决方案1】:
    String SPACE =" ";
    int numberOfCols = 1;

    while (numberOfCols < 5) {

        int colCounter = 1;
        for( int i = 2; i<= 10; i+=2) {
            System.out.print(i + SPACE);
            if(colCounter ++ > numberOfCols)    break;
        }
        System.out.println();
        numberOfCols++;
    }

【讨论】:

    【解决方案2】:

    我确实认为您没有空运行您的程序。否则你会理解你的问题。

    对于第一个外部循环row 存储2。在内部循环中col 可以获得值1,因为循环的退出条件是col row。所以当 col 达到 2 的值时,它会退出循环,因此只打印 2

    现在,外部循环的第二次迭代 row 存储 4。在内部循环中,col 从存储的值 1 开始。所以第一个打印将是 4 X 1 即 4. 然后 col 获得值 2 所以打印将是 4X2 即 8. 等等。这不是你想要的。所以重新考虑你的问题。

    【讨论】:

      【解决方案3】:

      要打印右对齐三角形,您需要为每次迭代增加宽度并仅打印偶数。

      行列不相乘,列列打印偶数即可

      试试这个

      private static void printPattern(int rows) {
          for (int row = 2; row <= 2 * rows; row += 2) {
              for (int col = 2; col <= row; col += 2) {
                  System.out.print(col + " ");
              }
              System.out.println();
          }
      }
      

      输出:行 = 10

      2 
      2 4 
      2 4 6 
      2 4 6 8 
      2 4 6 8 10 
      2 4 6 8 10 12 
      2 4 6 8 10 12 14 
      2 4 6 8 10 12 14 16 
      2 4 6 8 10 12 14 16 18 
      2 4 6 8 10 12 14 16 18 20 
      

      【讨论】:

      • 请解释他的解决方案有什么问题以及您如何纠正它
      • @Blip 肯定会添加
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-06
      相关资源
      最近更新 更多