Open In App

Python program to print Pascal’s Triangle

Last Updated : 28 Mar, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

Pascal’s triangle is a pattern of the triangle which is based on nCr, below is the pictorial representation of Pascal’s triangle.

Example:

Input: N = 5
Output:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1

Method 1: Using nCr formula i.e. n!/(n-r)!r!

After using nCr formula, the pictorial representation becomes:

0C0
1C0 1C1
2C0 2C1 2C2
3C0 3C1 3C2 3C3

Algorithm:

  • Take a number of rows to be printed, lets assume it to be n
  • Make outer iteration i from 0 to n times to print the rows.
  • Make inner iteration for j from 0 to (N – 1).
  • Print single blank space ” “.
  • Close inner loop (j loop) //its needed for left spacing.
  • Make inner iteration for j from 0 to i.
  • Print nCr of i and j.
  • Close inner loop.
  • Print newline character (\n) after each inner iteration.

Implementation:

Python3

# Print Pascal's Triangle in Python from math import factorial # input n n = 5 for i in range(n): for j in range(n-i+1): # for left spacing print(end=" ") for j in range(i+1): # nCr = n!/((n-r)!*r!) print(factorial(i)//(factorial(j)*factorial(i-j)), end=" ") # for new line print()


Output

1 1 1 1 2 1 1 3 3 1 1 4 6 4 1

Time complexity: O(N2)
Auxiliary space: O(1)

Method 2: We can optimize the above code by the following concept of a Binomial Coefficient, the i’th entry in a line number line is Binomial Coefficient C(line, i) and all lines start with value 1. The idea is to calculate C(line, i) using C(line, i-1).

C(line, i) = C(line, i-1) * (line - i + 1) / i

Implementations:

Python3

# Print Pascal's Triangle in Python # input n n = 5 for i in range(1, n+1): for j in range(0, n-i+1): print(' ', end='') # first element is always 1 C = 1 for j in range(1, i+1): # first value in a line is always 1 print(' ', C, sep='', end='') # using Binomial Coefficient C = C * (i - j) // j print()


Output

1 1 1 1 2 1 1 3 3 1 1 4 6 4 1

Time complexity: O(N2)
Auxiliary Space: O(1)

Method 3: The code prints Pascal’s Triangle up to the 6th row. It iterates through each row and calculates each value using the binomial coefficient formula, which is

[Tex]\frac{n!}{k! (n-k)!}[/Tex]

where n is the row number and k is the position in the row.

Implementation:

Python3

# Print Pascal's Triangle in Python # input n n = 6 # iterate up to n for i in range(n): # adjust space print(' '*(n-i), end='') # compute each value in the row coef = 1 for j in range(0, i + 1): print(coef, end=' ') coef = coef * (i - j) // (j + 1) print()


Output

1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1

Time Complexity: O(N^2)
Auxiliary Space: O(N^2)



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads