我有一个嵌套循环,可以打印一个数字三角形,如下所示:
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/