Пирамида Java у основания с числами от 1 до 10

Хочу написать код не используя масива чтобы на экран выводилась горка в последовательности без дублей

1
2 3
4 5 6
7 8 9 10
11 12 13 14 15

Искал в интернете и нашел только как сделать такой вариант

1 
1 2 
1 2 3 
1 2 3 4 
1 2 3 4 5 
1 2 3 4 5 6 
1 2 3 4 5 6 7 
1 2 3 4 5 6 7 8 
1 2 3 4 5 6 7 8 9 
1 2 3 4 5 6 7 8 9 10 

этим кодом

int n = 10;
        for (int i = 0; i <= n; i++){
            for (int j = 1; j <= i; j++){
                System.out.print(j + " ");
            }
            System.out.println();
        }

Не понимаю тут работу циклов, знаю что первый проходит по строках а второй по столбцах, но логику заполнения консолью чисел не могу понять.


Ответы (2 шт):

Автор решения: Oleksandr Borshch

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

public void drawPyramid() {
        int pyramidSize = 4; // количество строк в пирамиде
        int numberToPrint = 1;  // число, с которого начинается нумерация. 
                                //дальше оно постоянно увеличивается на 1.
      for (int i = 0; i <= pyramidSize; i++){  
          for (int j = 0; j <= i; j++){       
          System.out.print(numberToPrint + " ");
          numberToPrint++;
          }
       System.out.println();
      }
}
→ Ссылка
Автор решения: ya_ilya
public static void main(String[] args){
    printPyramid(10);
}

/**
* @param rows кол-во рядов пирамиды
*/
public static void printPyramid(int rows) {
    int number = 1; // текущая цифра
    int numbersInRow = 0; // кол-во цифр в одном ряде

    // rowIndex -> индекс текущего ряда
    for (int rowIndex = 1; rowIndex < rows; rowIndex++) {
        // rowNumberIndex -> индекс цифры текущего ряда
        for (int rowNumberIndex = 0; rowNumberIndex < numbersInRow; rowNumberIndex++) {
            System.out.print(number + " ");
            // увелечение текущей цифры
            number++;
        }

        // переход на новую строку после вывода всех цифр ряда
        System.out.print('\n');
        // увеличения кол-ва цифр в ряде на 1
        numbersInRow++;
    }
}
→ Ссылка