倒计时金字塔错误

vmpqdwk3  于 2021-07-03  发布在  Java
关注(0)|答案(2)|浏览(424)

我想得到一个有价值的金字塔:

1
     121
    12321
   1234321
  123454321

这是我的密码

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

但这一直给我的输出

1
    222
   33333
  4444444
 555555555

我怎样才能让金字塔的右边倒计时呢

kfgdxczn

kfgdxczn1#

这是一个有效的实现。我觉得你解决问题的方法不错,但第三个内部循环有问题。它不是从1向上计数,而是倒计时。相反,只需使用一个外循环的方法,覆盖金字塔的每一行,以及三个内循环。第一个循环可以打印空格,接下来的两个循环将分别向上计数。

int row = 1;
for (int i=1; i<=5; i++) {
    for (int o=1; o<=5-i; o++) {
        System.out.print(" ");
    }
    for (int k=1; k<=i; k++) {
        System.out.print(k);
    }
    for (int k = i-1; k >= 1; k--){                    
        System.out.print(k);
    }
    System.out.println();  
    row++;
}

输出:

1
   121
  12321
 1234321
123454321

此处演示:

雷克斯测试仪

nom7f22z

nom7f22z2#

这是一种打印金字塔的方法:

public void print(int height) {
    for (int i=0; i<height; i++) {
        for (int j=height; j>=1; j--) {
            if (j <= i+1) {
                System.out.print(j);
            } else {
                System.out.print(" ");
            }
        }

        for (int j=2; j<=height; j++) {
            if (j <= i+1) {
                System.out.print(j);
            } else {
                System.out.print(" ");
            }
        }

        System.out.print("\n");
    }
}

相关问题