首页 > 解决方案 > 我想要特定的模式

问题描述

这是我尝试过的代码。

    int rows2 = 5;
    for (int i = 1;i<=rows2; i++) {
        for (int j = i; j<rows2; j++) {
            System.out.print(" ");
        }
        for (int j = 1;j<=i; j++) {
            System.out.print("*");
        }
        System.out.println();

上述代码的输出

    *
   **
  ***
 ****
*****

我想要如下的特定输出(星号数)

    1
   12
  123
 1234
12345

标签: java

解决方案


试试这个代码:

int numRows = 5;

for (int r=0; r < numRows; ++r) {
    for (int i=0; i < numRows-r-1; ++i) System.out.print(" ");
    for (int j=0; j < r+1; ++j) System.out.print(j+1);
    System.out.println();
}

    1
   12
  123
 1234
12345

这里的逻辑是对于每一行,我们打印numRows - r空格,其中r是行号,从值 1 开始。然后,我们打印从 1 到行号的数字,依次填充该行的其余部分。


推荐阅读