Как я могу заставить мой код потерять пустое пространство в начале? - PullRequest
1 голос
/ 15 октября 2019

основная проблема: лишние пробелы в выводе

Я хочу, чтобы мой код распечатывал шаг цифр из моего ввода, который я получил. Моя главная проблема - это пробелы. Мне нужно, чтобы выход был на один пробел меньше в начале.

Удаление '' из моего System.out.print ();изменение цикла Обратное сегментирование цикла

import java.util.Scanner;

public class PatternTwo {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("Please enter a number 1...9 : ");

        int num = scan.nextInt(); 

        for(int i = 1; i <= num; ++i) { 

        for(int j=2*(num-i); j>=0; j--)

        {

        if (num <= 1)
            System.out.print("");
        else if (num > 1)
            System.out.print(" ");


        }


        for(int j = i; j >= 1; --j) {

        System.out.print(" " + j); 

        }

        System.out.println();

        }

    }

}

}```

I would like the result to be 

Please enter a number 1...9 :  2
  1
 2

Instead of:
Please enter a number 1...9 :  2
   1
  2

Ответы [ 2 ]

0 голосов
/ 15 октября 2019

Здесь две проблемы:

  1. j >= 0 следует изменить на j > 0

  2. Вам следует избегать печати пустого места, когда j == i

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    System.out.println("Please enter a number 1...9 :");

    int num = scan.nextInt(); 
    scan.close();

    for (int i = 1; i <= num; i++) { 
        for (int j = 2*(num-i); j > 0; j--)
            if (num > 1)
                System.out.print(" ");
        for (int j = i; j >= 1; j--) {
            if (j != i)
                System.out.print(" ");
            System.out.print(j); 
        }
        System.out.println();
    }
}

Я получил следующий вывод с num = 5:

Please enter a number 1...9 :
5
        1
      2 1
    3 2 1
  4 3 2 1
5 4 3 2 1
0 голосов
/ 15 октября 2019

Попробуйте добавить оператор if, который пропускает пробел в первый раз, например:

for(int j = i; j >= 1; --j) 
{
    if(j == i)
        System.out.print(j);
    else
        System.out.print(" " + j); 
}
...