# Java Program to Print Star Pascal’s Triangle

Last Updated : 08 Sep, 2022

Pascal’s triangle is a triangular array of the binomial coefficients. Write a function that takes an integer value n as input and prints the first n lines of Pascal’s triangle. Following are the first 6 rows of Pascal’s Triangle.In this article, we will look into the process of printing Pascal’s triangle. Pascal’s triangle is a pattern of the triangle which is based on nCr.below is the pictorial representation of Pascal’s triangle.

Illustration:

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

Methods:

There are two approaches for the same. Let’s check them out.

1. Using nCr formula
2. Using Binomial Coefficient

Method 1: Using nCr formula

Implementation: Follow the below algorithm for printing Pascal’s triangle using the nCr formula

• Let n be the number of rows to be printed
• Use outer iteration a from 0 to k times to print the rows
• Make inner iteration for b from 0 to (K – 1).
• Then print space as ” “.
• Close the inner ‘b’ loop.
• Make inner iteration for b from ‘0’ to ‘a’.
• Output nCr of ‘a’ and ‘b’.
• Close inner loop.
• Print newline character (\n) after each inner iteration.

Example

## Java

 `// Java Program to Print Pascal's Triangle`   `// Importing input output classes` `import` `java.io.*;`   `// Main Class` `public` `class` `GFG {`   `    ``// Method 1` `    ``// To find factorial of a number` `    ``public` `int` `factorial(``int` `a)` `    ``{` `        ``// Edge case` `        ``// Factorial of 0 is unity` `        ``if` `(a == ``0``)`   `            ``// Hence return 1` `            ``return` `1``;`   `        ``// else recursively call the function over the` `        ``// number whose factorial is to be computed` `        ``return` `a * factorial(a - ``1``);` `    ``}`   `    ``// Method 2` `    ``// Main driver method` `    ``public` `static` `void` `main(String[] args)` `    ``{` `        ``// Declare and initialize number whose` `        ``// factorial is to be computed` `        ``int` `k = ``4``;`   `        ``int` `a, b;`   `        ``// Creating an object of GFG class` `        ``// in the main() method` `        ``GFG g = ``new` `GFG();`   `        ``// iterating using nested for loop to traverse over` `        ``// matrix`   `        ``// Outer for loop` `        ``for` `(a = ``0``; a <= k; a++) {`   `            ``// Inner loop 1` `            ``for` `(b = ``0``; b <= k - a; b++) {`   `                ``// Print white space for left spacing` `                ``System.out.print(``" "``);` `            ``}`   `            ``// Inner loop 2` `            ``for` `(b = ``0``; b <= a; b++) {`   `                ``// nCr formula` `                ``System.out.print(` `                    ``" "` `                    ``+ g.factorial(a)` `                          ``/ (g.factorial(a - b)` `                             ``* g.factorial(b)));` `            ``}`   `            ``// By now, we are done with one row so` `            ``// a new line` `            ``System.out.println();` `        ``}` `    ``}` `}`

Output

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

Time complexity: O(2n) due to recursive method

Auxiliary Space: O(n) due to recursive stack space

Method 2: Using Binomial Coefficient

The ‘A’th entry in a line number line is Binomial Coefficient C(line, a) and all lines start with value 1. The idea is to calculate C(line, a) using C(line, a-1).

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

Implementation:

Example

## Java

 `// Java Program to Print Pascal's Triangle`   `// Importing input output classes` `import` `java.io.*;`   `// Main Class` `public` `class` `GFG {`   `    ``// Method 1` `    ``// Pascal function` `    ``public` `static` `void` `printPascal(``int` `k)` `    ``{` `        ``for` `(``int` `line = ``1``; line <= k; line++) {` `            ``for` `(``int` `b = ``0``; b <= k - line; b++) {`   `                ``// Print whitespace for left spacing` `                ``System.out.print(``" "``);` `            ``}`   `            ``// Variable used to represent C(line, i)` `            ``int` `C = ``1``;`   `            ``for` `(``int` `a = ``1``; a <= line; a++) {`   `                ``// The first value in a line is always 1` `                ``System.out.print(C + ``" "``);` `              `  `                ``C = C * (line - a) / a;` `            ``}`   `            ``// By now, we are done with one row so` `            ``// a new line is required` `            ``System.out.println();` `        ``}` `    ``}`   `    ``// Method 2` `    ``// Main driver method` `    ``public` `static` `void` `main(String[] args)` `    ``{` `        ``// Declare and initialize variable number` `        ``// upto which Pascal's triangle is  required on` `        ``// console` `        ``int` `n = ``6``;`   `        ``// Calling the Pascal function(Method 1)` `        ``printPascal(n);` `    ``}` `}`

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) where n is given input for no of rows of pascal triangle

Auxiliary Space: O(1)

Previous
Next