Java Program to Print Pascal's Triangle

Introduction

Pascal's Triangle is a triangular array where each entry is the sum of the two directly above it. It is a common exercise to print Pascal's Triangle in programming, which helps in understanding combinatorics and how to use nested loops effectively.

Problem Statement

Create a Java program that:

  • Accepts the number of rows.
  • Prints Pascal's Triangle.

Example:

  • Input: rows = 5
  • Output:
        1
       1 1
      1 2 1
     1 3 3 1
    1 4 6 4 1
    

Solution Steps

  1. Input the Number of Rows: The size determines the number of rows in Pascal's Triangle.
  2. Use a Nested Loop: The outer loop will handle the rows, and the inner loop will handle the calculation and printing of the elements.
  3. Calculate Pascal's Triangle Values: Use the formula for calculating binomial coefficients: C(n, k) = n! / (k! * (n - k)!).
  4. Display Pascal's Triangle: Print the calculated values in a triangular form.

Java Program

// Java Program to Print Pascal's Triangle
// Author: [Your Name]

import java.util.Scanner;

public class PascalsTriangle {
    public static void main(String[] args) {
        // Step 1: Accept the number of rows for Pascal's Triangle
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter the number of rows for Pascal's Triangle: ");
        int rows = sc.nextInt();

        // Step 2: Outer loop for each row
        for (int i = 0; i < rows; i++) {
            // Step 3: Print spaces for alignment
            for (int j = 0; j < rows - i; j++) {
                System.out.print(" ");
            }

            // Step 4: Print Pascal's Triangle values for each row
            int number = 1;  // The first number in each row is always 1
            for (int j = 0; j <= i; j++) {
                System.out.print(number + " ");
                number = number * (i - j) / (j + 1);  // Update the number using binomial coefficient formula
            }

            // Move to the next line after printing each row
            System.out.println();
        }

        // Closing the scanner object
        sc.close();
    }
}

Explanation

Step 1: Input Number of Rows

  • The program begins by taking input from the user to determine how many rows of Pascal's Triangle to print.

Step 2: Outer Loop for Rows

  • The outer loop runs from 0 to rows - 1, representing the rows of Pascal's Triangle.

Step 3: Print Spaces for Alignment

  • For each row, the inner loop prints spaces to align the numbers correctly so that they form a triangular shape.

Step 4: Print Pascal's Triangle Values

  • Each row of Pascal's Triangle starts with 1. The subsequent numbers are calculated using the formula for binomial coefficients:
    C(n, k) = C(n, k-1) * (n - k + 1) / k.
  • This approach efficiently computes the next number in the row without using factorials directly.

Output Example

For rows = 5, the output is:

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

For rows = 7, the output is:

      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
 1 5 10 10 5 1
1 6 15 20 15 6 1

Conclusion

This Java program prints Pascal's Triangle using nested loops and the binomial coefficient formula. The program aligns the numbers properly to form a triangular shape, making it a useful exercise to practice loops, mathematical operations, and formatting output in Java.

Comments