我很难让这段代码从5个空格开始,减少到0个空格,每行减去一个空格。
public class Prob3 {
public static void main(String[]args) {
for (int x=1; x<=5; x++)
{
for (int y=5; y>=1; y--)
{
System.out.print(" ");
}
System.out.println(x);
}
}
}
当前输出为(应为5个空格):
5
4
3
2
1
我对目前的进展感到满意,但我需要更接近这一点:
1
2
3
4
5
我觉得我很亲密
答案 0 :(得分:6)
将内循环更改为:
for (int y=5; y > x; y--)
您会注意到每行上的空格数量的模式:
因此,模式是,空格的数量为5 - rowNumber
。在您的代码中,外部循环表示rowNumber
。内循环应该运行5 - rowNumber
次。这就是条件应为y > rowNumber
的原因,即y > x
。
答案 1 :(得分:1)
将内循环更改为:
for (int y=5; y>x; y--)
完整代码:
for (int x=1; x<=5; x++)
{
for (int y=5; y>x; y--)
System.out.print(" ");
System.out.println(x);
}
答案 2 :(得分:0)
内部循环表达式应为:
public class Prob3 {
public static void main(String[]args) {
for (int x = 0; x < 5; x++) {
for (int y = (4 - x); y > 0; y--) {
System.out.print(" ");
}
System.out.println(x + 1);
}
}
}
问题在于你每次从5开始。内循环中的(4-x)使得最后一个数字(5)具有0个前导空格。