Цифровая пирамида, не могу получить цифры для печати слева - PullRequest
0 голосов
/ 08 апреля 2019

Мне нужна полная пирамида, но я могу получить только правую ее сторону.Предполагается, что это будет выглядеть с примером вывода 4:

    1
   212
  32123
 4321234

Я все еще новичок в java для циклов, поэтому я пытался делать отрицательные приращения, но это не сработало, если есть типспособа напечатать его в обратном порядке?

import java.util.Scanner;
public class Pyramid {
    public static void main(String [] args) {
        System.out.println("Enter a number 1 to 15");
        Scanner input = new Scanner(System.in);
        int input1 = input.nextInt();
        if (input1 >= 1 && input1 <=15) {
            for(int column =1; column <input1; column++) {
                for(int row = 1; row < column; row++) {
                    System.out.print(row + " ");
                }
                System.out.print(column);
            System.out.println();
            }

        }
    }
}

1 Ответ

0 голосов
/ 08 апреля 2019

Вам нужно больше циклов, и вы работаете строка за строкой, а не столбец за столбцом, поэтому внешний цикл должен использовать row.

А внутренние циклы предназначены для:

  • печать пробелов
  • печать чисел в порядке убывания до 1 (исключить)
  • печать чисел в порядке возрастания от 1
for(int row = 1; row <= input1; row++) {
    for(int space = 0; space < input1-row; space++) {
        System.out.print(" ");
    }
    for(int desc = row; desc > 1; desc--) {
        System.out.print(desc);
    }
    for(int asc = 1; asc <= row; asc++) {
        System.out.print(asc);
    }
System.out.println();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...