颠倒三角形的数字我Java
问题描述:
我是Java的初学者,无法弄清楚如何打印倒数三角形的数字。这些数字应该每行减少1。防爆。行数; 6 打印:颠倒三角形的数字我Java
666666
55555
4444
333
22
1
到目前为止,这是我想出了; (int nr是用户的扫描输入)
for (int i = 1; i <= nr; i++) {
for (int j = 1; j <=nr; j++)
{
System.out.print(nr);
}
nr--;
System.out.println();
}
通过拥有nr--
;循环变得越来越短,我无法弄清楚如何保持循环进行“nr”次,但仍然减少了打印出来的数量。
答
你的问题是,你正在改变NR,尝试:
int original_nr = nr;
for (int i = 1; i <= original_nr; i++) {
for (int j = 1; j <=nr; j++)
{
System.out.print(nr);
}
nr--;
System.out.println();
}
答
不能减少nr
,并仍然使用它作为循环上限。实际上你应该认为nr
是不可变的。
相反,改变外环从nr
向下计数到1
,和内环计数从1
到i
,和i
打印价值。
for (int i = nr; i > 0; i--) {
for (int j = 0; j < i; j++) {
System.out.print(i);
}
System.out.println();
}
答
你是正确的,你需要写一个循环来打印行每个号,从NR和减1,直到你到达0。但你也必须打印可变数量的数字在每一行。要做到这一点,可以使用嵌套循环来打印数量所需的次数。
由于您在nr处开始打印并减少,直到达到1,您可以尝试编写一个递减而非递增的外部循环。然后使用嵌套循环将数字打印所需的次数。例如:
for (int i = nr; i > 0; i--) {
for (int j = 0; j < i; j++) {
System.out.print(i);
}
System.out.println();
}
两个变量,也许? – rghome