我有一个嵌套循环,可以打印一个数字三角形,如下所示:

123
12
1


我需要另一个三角形,但必须将其倒置,以便两个可以在下面形成一个空三角形,如下所示:

12321
12 21
1   1


这是我的第一个循环:

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


我添加了另一个循环:

for (j = n; j >= 1; j--) {
    System.out.print(j);
}


现在数字被颠倒了,但是重复了,就像这样:

123321
12321
1321

最佳答案

这是我的解决方案:

int n = 3;
for (int i = n; i >= 1; i--) {
    System.out.println();
    for (int j = n - 1; j > -n; j--) {
        int k = n - Math.abs(j);
        if (k <= i) {
            System.out.print(k);
        } else {
            System.out.print(" ");
        }
    }
}
System.out.println();


如何运作?让我们简化代码:

int n = 3;
for (int i = n; i >= 1; i--) {
    System.out.println();
    for (int j = n - 1; j > -n; j--) {
        int k = n - Math.abs(j);
        System.out.print(k);
    }
}
System.out.println();


我们只打印矩形:

12321
12321
12321


现在,对于每一行,我们都需要k
int n = 3;
for (int i = n; i >= 1; i--) {
    System.out.println();
    for (int j = n - 1; j > -n; j--) {
        int k = n - Math.abs(j);
        if (k <= i) {
            System.out.print(k);
        } else {
            System.out.print(" ");
        }
    }
}
System.out.println();


并具有:

12321
12 21
1   1

关于java - 如何反转直角三角形(Java),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40615505/

10-14 09:05