有人知道如何同时递增和递减并将输出并排放置吗?

pcww981p  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(313)

编写一个应用程序,要求用户输入一个数字。然后,您的程序将根据您输入的数字显示一个开始和结束的数字,并在右侧显示与您在左侧显示的数字相反的数字。
预期产量:

Enter a number: 5
1 5
2 4
3 3
4 2
5 1

我试着制作一个带有递增和递减数字的空心框,并将其他代码作为注解来尝试生成预期的输出。但我还是做不到。

import java.util.Scanner;
public class MyClass {
public static void main(String args[])
{
    System.out.print("Enter a number: ");
    Scanner input = new Scanner (System.in);
    int num = input.nextInt();
    System.out.print("\n");

    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();
        }
    }
}
g9icjywg

g9icjywg1#

因为这是家庭作业,所以我会给出指导而不是代码。
左边的列看起来很容易生成—一个简单的循环就可以了。
考虑左右数字之间的关系。注意,它们的总数总是6,或者更一般地说 n + 1 . 右边的这列可以通过减去 in + 1 ,在哪里 i 是左列值。

pzfprimi

pzfprimi2#

你想得太多了(;->)。没那么复杂。
有一种可能的方法:

public class MyClass {
public static void main(String args[])
{
    System.out.print("Enter a number: ");
    Scanner input = new Scanner (System.in);
    int num = input.nextInt();
    System.out.print("\n");
    int i = 1;
    int j = num;
    while (i >= num) {
        System.out.println(i + " " + j);
        i++;
        j--;
    }
}

还有一个:

public class MyClass {
public static void main(String args[])
{
    System.out.print("Enter a number: ");
    Scanner input = new Scanner (System.in);
    int num = input.nextInt();
    System.out.print("\n");
    for (int i = 1; i <= num; ++i) {
        System.out.println(i + " " + (num - i + 1));
    }
}

相关问题