# Program to Print Pascal Triangle in Java

Pascal’s triangle is a set of numbers arranged in the form of a triangle. Each number in a row is the sum of the left number and right number on the above row. If a number is missing in the above row, it is assumed to be 0. The first row starts with number 1. The following is a Pascal triangle with 5 rows,

1 |
||||||||

1 |
1 |
|||||||

1 |
2 |
1 |
||||||

1 |
3 |
3 |
1 |
|||||

1 |
4 |
6 |
4 |
1 |

The triangle is named after the French mathematician Blaise Pascal who organized detailed information on the triangle in a book. However this triangle was known in many ancient civilizations.

Pascal’s triangle has a number of unique properties,

- The sum of numbers in each row is twice the sum of numbers in the above row
- The diagonals adjacent to the border diagonals contains natural numbers in order

## Generate Pascal’s Triangle in Java

The following Java program prints Pascal’s triangle with 10 rows.

/* Program to print pascal triangle for 10 rows in java */ public class PascalTriangle { public static void main(String[] args) { int rows = 10; for(int i =0;i<rows;i++) { int number = 1; System.out.format("%"+(rows-i)*2+"s",""); for(int j=0;j<=i;j++) { System.out.format("%4d",number); number = number * (i - j) / (j + 1); } System.out.println(); } } }

Note the formatting commands used above to create a nicely formatted triangle. %4d instructs the formatter to print the number within 4 spaces. We choose 4 since we know the maximum number of digits in the largest number of a Pascal triangle with 10 rows is 3 digits.

The following program prints a Pascal’s triangle when the number of rows are given as a parameter,

/* Program to print pascal triangle for 10 rows in java */ public class PascalTriangle { public static void main(String[] args) { int rows = Integer.parseInt(args[0]); for(int i =0;i<rows;i++) { int number = 1; System.out.format("%"+(rows-i)*2+"s",""); for(int j=0;j<=i;j++) { System.out.format("%4d",number); number = number * (i - j) / (j + 1); } System.out.println(); } } }

What if the parameter is different, so if the number of rows would be higher, lets say twenty, the program should be able to change its format according to the value of the given parameter. How would I do that?