Пирамида 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++;
}
}