Рубрики
Без рубрики

Что такое реализация треугольника Паскаля на Java

Треугольник Паскаля назван в честь французского математика Блеза Паскаля. Это треугольный массив биномиальных коэффициентов. Треугольник следует очень простому

Автор оригинала: Pankaj Kumar.

Треугольник Паскаля назван в честь французского математика Блеза Паскаля . Это треугольный массив биномиальных коэффициентов.

Треугольник следует очень простому правилу.

Каждое число представляет собой сумму двух чисел, расположенных непосредственно над ним.

Вот gif, который иллюстрирует заполнение треугольника Паскаля.

Значение элемента (i,j) задается C(i,j)!/((i-j)!*j!) . Где i-номер строки, а j – позиция элемента в этой строке.

Java – код для треугольника Паскаля

Код Java для печати треугольника паскаля выглядит следующим образом.

package com.JournalDev;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner s = new Scanner (System.in);
        System.out.println("Enter the number of rows");
        int rows = s.nextInt();
        int coef = 1;

        for(int i = 0; i < rows; i++) {
            for(int sp = 1; sp < rows - i; ++sp) {
                System.out.print("  ");
            }

            for(int j = 0; j <= i; j++) {
                if (j == 0 || i == 0)
                    coef = 1;
                else
                    coef = coef * (i - j + 1) / j;

                System.out.printf("%4d", coef);
            }

            System.out.println();
        }
    }
}

Код вводит количество строк треугольника паскаля от пользователя.

Давайте пройдемся по коду и разберемся.

Разбивка Кода

Самый внешний для цикла отвечает за печать каждой строки. Он будет запускать “строку” несколько раз.

 for(int i = 0; i < rows; i++) {

Следующий цикл для отвечает за печать пробелов в начале каждой строки.

 for(int sp = 1; sp < rows - i; ++sp) {
                System.out.print("  ");
            }

Мы видим, что по мере увеличения текущего номера строки ( i ) количество запусков этого цикла будет уменьшаться.

Следующий цикл для отвечает за печать чисел в треугольнике.

 for(int j = 0; j <= i; j++) {
                if (j == 0 || i == 0)
                    coef = 1;
                else
                    coef = coef * (i - j + 1) / j;

                System.out.printf("%4d", coef);
            }

Для первой строки и первого элемента каждой последующей строки в качестве выходных данных выводится 1.

Формула, которая вычисляет цифру для оставшихся позиций, выглядит так:

coef = coef * (i - j + 1) / j;

Где i-номер текущей строки, а j-позиция элемента в этой строке.

j инициализируется значением 0 для каждой строки.

Мы можем провести быструю сухую пробежку для строки № 3.

i = 3, j = 0 -> 1 (coef)
i = 3, j = 1 -> 3 (1*(3-1+1)/1)
i = 3, j = 2 -> 3 (3*(3-2+1)/2)
i = 3, j = 3 -> 1 (3*(3-3+1)/3)

Ряд получается таким:

1 3 3 1 

Вы также должны сделать это для строк 4 и 5, чтобы понять, как работает формула.

Чтобы правильно отформатировать вывод, мы используем printf.

Выход

Результат, полученный после выполнения кода, выглядит следующим образом:

Вывод

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