Автор оригинала: Pankaj Kumar.
Программы шаблонов часто используются в интервью, чтобы понять способности интервьюируемого к логическому мышлению. Пирамидальные шаблоны очень популярны, и как только мы получим логику в том, как она создается, написание кода для достижения той же цели станет легкой задачей.
Программы с пирамидальным узором на Java
Мы постараемся сделать код простым, чтобы его можно было легко понять.
Пирамидальный узор из чисел
Если вы посмотрите на первый шаблон, то увидите, что каждая строка содержит одно и то же число, напечатанное одинаковое количество раз. Однако в каждой строке есть начальные пробелы, количество которых равно “строки-i”. Давайте посмотрим на программу для печати этого шаблона.
package com.journaldev.patterns.pyramid; import java.util.Scanner; public class PyramidPattern { private static void printPattern1(int rows) { // for loop for the rows for (int i = 1; i <= rows; i++) { // white spaces in the front of the numbers int numberOfWhiteSpaces = rows - i; //print leading white spaces printString(" ", numberOfWhiteSpaces); //print numbers printString(i + " ", i); //move to next line System.out.println(""); } } //utility function to print string given times 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 = "+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
Вывод Java-Программы с пирамидальным Рисунком
Пирамидальная структура возрастающих чисел
Вот функция для печати шаблона 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 loop for the rows for (int i = 1; i <= rows; i++) { // white spaces in the front of the numbers int numberOfWhiteSpaces = rows - i; //print leading white spaces printString(" ", numberOfWhiteSpaces); //print numbers for(int x = 1; x<=i; x++) { System.out.print(x+" "); } //move to next line System.out.println(""); } }
Пирамида символов
Это действительно просто, нам просто нужно напечатать символ без каких-либо вычислений или манипуляций.
/** * Program to print following pyramid structure * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ private static void printPattern3(int rows) { // for loop for the rows for (int i = 1; i <= rows; i++) { // white spaces in the front of the numbers int numberOfWhiteSpaces = rows - i; //print leading white spaces printString(" ", numberOfWhiteSpaces); //print character printString("* ", i); //move to next line 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 loop for the rows for (int i = 1; i <= rows; i++) { // white spaces in the front of the numbers int numberOfWhiteSpaces = (rows-i)*2; //print leading white spaces printString(" ", numberOfWhiteSpaces); //print numbers for(int x=1; x0; j--) { System.out.print(j+" "); } //move to next line System.out.println(""); } }
Обратите внимание, что в каждой строке есть числа 2*r-1. Таким образом, у нас будет (строки-i)*2 пробела, прежде чем мы напечатаем какое-либо число. Затем числа начинаются с 1 до “i”, а затем снова до 1. Наша логика для печати чисел потребовала бы двух циклов для достижения этой цели.
Программа Pyramid Pattern 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 loop for the rows for (int i = rows; i >= 1; i--) { // white spaces in the front of the numbers int numberOfWhiteSpaces = i*2; //print leading white spaces printString(" ", numberOfWhiteSpaces); //print numbers for(int x=i; x=i; j--) { System.out.print(j+" "); } //move to next line System.out.println(""); } }
Перевернутая пирамидальная схема символов
Вот фрагмент кода для программы перевернутой пирамиды.
/** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ private static void printPattern6(int rows) { // for loop for the rows for (int i = rows; i >= 1; i--) { // white spaces in the front of the numbers int numberOfWhiteSpaces = rows - i; //print leading white spaces printString(" ", numberOfWhiteSpaces); //print character printString("* ", i); //move to next line 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 loop for the rows for (int i = rows; i >= 1; i--) { // white spaces in the front of the numbers int numberOfWhiteSpaces = rows - i; //print leading white spaces printString(" ", numberOfWhiteSpaces); //print character printString(i+" ", i); //move to next line System.out.println(""); } }
Вывод
Существует много типов пирамидальных узоров. Самый важный момент-понять структуру, в которой организованы числа и пробелы. Как только вы разберетесь в шаблоне, вы также сможете легко писать код на Java или любом другом языке программирования. Пожалуйста, дайте мне знать, если вы ищете какую-либо конкретную программу-шаблон, и я постараюсь вам помочь.
Дальнейшее Чтение
Строковые программы на Java и Вопросы для интервью по программированию на Java