3 回答

TA贡献1808条经验 获得超4个赞
这是您想要获得的模式:
4
34
234
1234
当您用文字描述模式时,它可能如下所示:
第 1 行有 3 个空格,然后是数字 4
第 2 行有 2 个空格,然后是数字 3 和 4
第 3 行有 1 个空格,然后是数字 2 到 4
第 4 行有 0 个空格,然后是数字 1 到 4
这里已经有某种模式。最后两行看起来非常相似。让我们看看前两行是否可以带入相同的形式:
第 1 行有 3 个空格,然后是数字 4 到 4
第 2 行有 2 个空格,然后是数字 3 到 4
第 3 行有 1 个空格,然后是数字 2 到 4
第 4 行有 0 个空格,然后是数字 1 到 4
现在看起来不错。下一步是更改措辞以取决于给定的行:
第 i 行有 (4 - i) 个空格,然后是数字 (4 - i + 1) 到 4
我注意不要说 5 而不是 4 + 1,这样 4 仍然可见。让我们给这 4 个起另一个名字:
第 i 行有 (max - i) 个空格,然后是数字 (max - i + 1) 到 max
现在您应该能够将此指令翻译成 Java 代码。

TA贡献1765条经验 获得超5个赞
您只需要一个内部 for 循环。
我使用三元运算符(也称为 elvis-operator 因为?:)来决定是打印数字还是空格:
int n = 7;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
System.out.print(j > n-i ? j : " ");
}
System.out.println();
}
它打印
7
67
567
4567
34567
234567
1234567

TA贡献1836条经验 获得超4个赞
在这种情况下,您实际上只需要一个嵌套循环:
int n = 4;
for (int i = n; i > 0; i--) {
for (int j = 1; j <= n; j++) {
if (j < i) {
System.out.print(" ");
} else {
System.out.print(j);
}
}
System.out.println();
}
0因此,从to循环n并打印一个空格,或者如果内部计数器小于 ,则打印数字i。
输出:
4
34
234
1234
添加回答
举报