我已经尝试过一个Java程序,该程序在中间包括空心,并且根据用户的输入在侧面减少和增加数字。 假设用户的输入为4,则输出应如下所示:-
1 2 3 4
2 3
3 2
4 3 2 1
我设法做到了,直到这样:-
1 2 3 4
2
3
4 3 2 1
使用此代码:
import java.util.*;
public class Exercise2 {
public static void main(String args[])
{
System.out.print("Enter an integer >0 and <21: ");
Scanner input = new Scanner (System.in);
int num = input.nextInt();
for (int i = 0; i < num; i++)
{
System.out.print((i+1) + " ");
}
System.out.println();
for (int j = 1; j < num-1; j++)
{
System.out.println((j+1) + " ");
}
// for (int j = num-1; j > 1; j--)
// {
// System.out.print(j + " ");
// }
for (int j = num; j > 0; j--)
{
System.out.print((j) + " ");
}
System.out.println();
if (num > 21 || num < 0)
{
System.out.println("Wrong number range");
}
}
}
我不知道该怎么做,使其向下变成4 3 2 1。我尝试取消注释代码的注释,它给出了3 2,这是我想要的,但不是直线。我不知道我的错误在哪里。而且我不怎么插入空格(System.out.print(“”)),以便空心实际上是打印的东西,而不仅仅是空白。
答案 0 :(得分:0)
这是一种方法:
for (int i = 0; i < num; ++i) {
for (int j = 0; j < num; ++j) {
if (i == 0) {
System.out.print((j + 1) + " ");
} else if (i == num-1) {
System.out.print((num - j) + " ");
} else if (j == 0) {
System.out.print((i + 1) + " ");
} else if (j == num-1) {
System.out.print((num - i) + " ");
} else {
System.out.print(" ");
}
}
System.out.println();
}