【问题标题】:Format of Pascal's triangle [duplicate]帕斯卡三角形的格式[重复]
【发布时间】:2021-06-27 14:35:01
【问题描述】:

我必须打印帕斯卡的三角形,所以它的每一边都应该有数字 1,并且三角形的格式应该在每一边都是偶数(现在它在右侧更长了)。我的代码:

public static void main(String[] args) {
    printPascalTriangle(10);
}

public static void printPascalTriangle(int size) {
    for (int i = 0; i <= size; i++) {
        System.out.println();
        for (int j = 0; j <= (size - i); j++) {
            System.out.print(" ");
        }
        for (int j = 0; j <= i; j++) {
            System.out.print(" " + (i + j));
        }
    }
}

输出是:

            0
           1 2
          2 3 4
         3 4 5 6
        4 5 6 7 8
       5 6 7 8 9 10
      6 7 8 9 10 11 12
     7 8 9 10 11 12 13 14
    8 9 10 11 12 13 14 15 16
   9 10 11 12 13 14 15 16 17 18
  10 11 12 13 14 15 16 17 18 19 20

为什么不总结?为什么循环不能正确格式化空格?

【问题讨论】:

  • 那么我应该如何改变它以使其工作?这是我的第三个任务,我不知道该怎么做。

标签: java format spaces pascals-triangle


【解决方案1】:

您应该使用 printf 方法而不是带有适当参数的 print 来格式化您的输出:

public static void main(String[] args) {
    printPascalTriangle(10);
}

public static void printPascalTriangle(int rows) {
    for (int i = 0; i < rows; i++) {
        int number = 1;
        System.out.printf("%" + (rows - i) * 2 + "s", "");
        for (int j = 0; j <= i; j++) {
            System.out.printf("%4d", number);
            number = number * (i - j) / (j + 1);
        }
        System.out.println();
    }
}

输出:

                       1
                     1   1
                   1   2   1
                 1   3   3   1
               1   4   6   4   1
             1   5  10  10   5   1
           1   6  15  20  15   6   1
         1   7  21  35  35  21   7   1
       1   8  28  56  70  56  28   8   1
     1   9  36  84 126 126  84  36   9   1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 2014-06-10
    • 2016-03-14
    • 1970-01-01
    • 2012-10-24
    • 1970-01-01
    相关资源
    最近更新 更多