Программы для создания пирамидальных узоров на Java

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

Программы шаблонов пирамид в Java

Вот несколько примеров создания различных пирамид из чисел, символов и т. д. Мы также рассмотрим примеры создания инвертированных пирамид в программе на Java. Мы постараемся сохранить код простым, чтобы его легко было понять.

Пирамидальный шаблон из чисел

Если посмотреть на первый шаблон, то каждая строка содержит одно и то же число, напечатанное одинаковое количество раз. Однако каждая строка имеет ведущие пробелы, их количество равно “rows-i”. Давайте рассмотрим программу для печати этого шаблона.

package com.journaldev.patterns.pyramid;

import java.util.Scanner;

public class PyramidPattern {

	private static void printPattern1(int rows) {
		// для цикла по строкам
		for (int i = 1; i <= rows; i++) {
			// пробелы перед числами
			int numberOfWhiteSpaces = rows - i;

			//печатаем ведущие пробелы
			printString(" ", numberOfWhiteSpaces);

			//печатаем числа
			printString(i + " ", i);

			//переходим на следующую строку
			System.out.println("");
		}
	}

	//вспомогательная функция для печати строки заданное количество раз
	private static void printString(String s, int times) {
		for (int j = 0; j < times; j++) {
			System.out.print(s);
		}
	}

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		System.out.println("Please enter the rows to print:");
		int rows = scanner.nextInt();
		// System.out.println("Строки = "+rows);
		scanner.close();

		System.out.println("Printing Pattern 1\n");
		printPattern1(rows);

	}

}

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

Please enter the rows to print:
9
Printing Pattern 1

        1 
       2 2 
      3 3 3 
     4 4 4 4 
    5 5 5 5 5 
   6 6 6 6 6 6 
  7 7 7 7 7 7 7 
 8 8 8 8 8 8 8 8 
9 9 9 9 9 9 9 9 9 
Pyramid Pattern Java Program Output

Пирамида Из Нарастающих Чисел

Вот функция для печати паттерна 2. Ключевой момент, который следует заметить, – это количество ведущих пробелов, а затем числа печатаются в возрастающем порядке.

/**
 * 
 * Program to print below pyramid structure
 *      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 
*/
private static void printPattern2(int rows) {
	// для цикла по строкам
	for (int i = 1; i <= rows; i++) {
		// пробелы перед числами
		int numberOfWhiteSpaces = rows - i;

		//печатаем ведущие пробелы
		printString(" ", numberOfWhiteSpaces);

		//печатаем числа
		for(int x = 1; x<=i; x++) {
			System.out.print(x+" ");
		}

		//переходим на следующую строку
		System.out.println("");
	}
}

Пирамида Из Символов

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

/**
 * Program to print following pyramid structure
        *         
       * *        
      * * *       
     * * * *      
    * * * * *     
   * * * * * *    
  * * * * * * *   
 * * * * * * * *  
* * * * * * * * * 

*/
private static void printPattern3(int rows) {
	// цикл for для строк
	for (int i = 1; i <= rows; i++) {
		// пробелы в начале чисел
		int numberOfWhiteSpaces = rows - i;

		// печать ведущих пробелов
		printString(" ", numberOfWhiteSpaces);

		// печать символа
		printString("* ", i);

		// переход на следующую строку
		System.out.println("");
	}
}

Программа шаблона пирамиды 4

/**
* 
*               1 
              1 2 1 
            1 2 3 2 1 
          1 2 3 4 3 2 1 
        1 2 3 4 5 4 3 2 1 
      1 2 3 4 5 6 5 4 3 2 1 
    1 2 3 4 5 6 7 6 5 4 3 2 1 
  1 2 3 4 5 6 7 8 7 6 5 4 3 2 1 
1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 
*/

private static void printPattern4(int rows) {
	// цикл for для строк
	for (int i = 1; i <= rows; i++) {
		// пробелы в начале чисел
		int numberOfWhiteSpaces = (rows-i)*2;

		// печать ведущих пробелов
		printString(" ", numberOfWhiteSpaces);

		// печать чисел
		for(int x=1; x0; j--) {
			System.out.print(j+" ");
		}

		// переход на следующую строку
		System.out.println("");
	}
}

Обратите внимание, что в каждой строке есть 2*r-1 чисел. Поэтому у нас будет (строки-i)*2 пробела перед тем, как мы напечатаем какое-либо число. Затем числа начинаются с 1 и до “i”, а затем снова до 1. Наша логика печати чисел потребует два цикла for для достижения этого.

Программа шаблона пирамиды 5 на Java

/**
 * 
 *                9 
                8 9 8 
              7 8 9 8 7 
            6 7 8 9 8 7 6 
          5 6 7 8 9 8 7 6 5 
        4 5 6 7 8 9 8 7 6 5 4 
      3 4 5 6 7 8 9 8 7 6 5 4 3 
    2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 
  1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 
*/
private static void printPattern5(int rows) {
	// цикл for для строк
	for (int i = rows; i >= 1; i--) {
		// пробелы в начале чисел
		int numberOfWhiteSpaces = i*2;

		// печать ведущих пробелов
		printString(" ", numberOfWhiteSpaces);

		// печать чисел
		for(int x=i; x=i; j--) {
			System.out.print(j+" ");
		}

		// переход на следующую строку
		System.out.println("");
	}
}

Обратная пирамида Шаблон символов

Вот фрагмент кода программы обратной пирамиды.

/**
 * 
* * * * * * * * * 
 * * * * * * * * 
  * * * * * * * 
   * * * * * * 
    * * * * * 
     * * * * 
      * * * 
       * * 
        * 
 */
private static void printPattern6(int rows) {
	// цикл for для строк
	for (int i = rows; i >= 1; i--) {
		// пробелы в начале чисел
		int numberOfWhiteSpaces = rows - i;

		// печать ведущих пробелов
		printString(" ", numberOfWhiteSpaces);

		// печать символа
		printString("* ", i);

		// переход на следующую строку
		System.out.println("");
	}
}

Обратный пирамидный шаблон чисел

Давайте рассмотрим пример обратного пирамидного шаблона, состоящего из чисел.

	/**
	 * 
9 9 9 9 9 9 9 9 9 
 8 8 8 8 8 8 8 8 
  7 7 7 7 7 7 7 
   6 6 6 6 6 6 
    5 5 5 5 5 
     4 4 4 4 
      3 3 3 
       2 2 
        1 
	 */
private static void printPattern7(int rows) {
	// цикл for для строк
	for (int i = rows; i >= 1; i--) {
		// пробелы в начале чисел
		int numberOfWhiteSpaces = rows - i;

		// печать ведущих пробелов
		printString(" ", numberOfWhiteSpaces);

		// печать символа
		printString(i+" ", i);

		// переход на следующую строку
		System.out.println("");
	}
}

Вывод

Существует много типов пирамидальных узоров. Самое важное – понять узор, в котором организованы числа и пробелы. Как только вы понимаете узор, вы можете легко писать код на Java или любом другом языке программирования. Пожалуйста, дайте мне знать, если вы ищете какую-то конкретную программу для паттерна, и я постараюсь помочь вам.

Дополнительное чтение

Программы строк в Java и Вопросы на собеседовании по Java-программированию

Вы можете проверить полный код и другие примеры программирования в нашем репозитории GitHub.

Source:
https://www.digitalocean.com/community/tutorials/pyramid-pattern-programs-in-java