【发布时间】:2022-01-06 11:24:16
【问题描述】:
我被要求创建一个显示倒金字塔数字(仅限 1 到 9)的 java 程序。用户输入多少行。
我不知道如何循环并将数字限制为 9 并将其更改为右侧。
我的代码是:
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
System.out.print("Enter height:\t");
int height = sc.nextInt();
for (int row = height; row >= 1; row--) {
for (int col = 1; col <= row; col++) {
System.out.print("");
}
for (int k = 1; k <= row; k++) {
System.out.print(row + "");
}
System.out.println();
}
}
}
输出是:
Enter height: 12
121212121212121212121212
1111111111111111111111
10101010101010101010
999999999
88888888
7777777
666666
55555
4444
333
22
1
输出应该是:
Enter height: 12
111111111111
22222222222
3333333333
444444444
55555555
6666666
777777
88888
9999
111
22
3
或者:
Enter height: 20
11111111111111111111
2222222222222222222
333333333333333333
44444444444444444
5555555555555555
666666666666666
77777777777777
8888888888888
999999999999
11111111111
2222222222
333333333
44444444
5555555
666666
77777
8888
999
11
2
【问题讨论】:
-
您的样本输出是直角三角形,而不是金字塔 - 这是故意的吗?作业是否包括这些作为示例,或者是否有输出的描述?
-
您的帖子包含(至少隐含地)三个问题:1. 将金字塔限制在
1和9之间的数字 - 2. 使金字塔上升而不是下降 - 3. 使金字塔右对齐的左对齐。我的评论只会解决第一个问题,因为这是您明确询问的问题。 --- 我建议使用单独的变量来表示用于当前行的数字。当它是>= 10时,我们可以编写一些自定义逻辑将其重置为1,例如通过使用ifstatement (oracle.com)。