//
//  main.cpp
//  Pascal Triangle
//
//  Created by Himanshu on 20/09/21.
//

#include <iostream>
using namespace std;


void printPascalTriangle (int n) {
    int pascal[n+1][n+1];
    
    //Base case
    pascal[1][1] = 1;
    
    for (int i=0; i<=n; i++) {
        for (int j=0; j<=n; j++) {
            pascal[i][j] = 0;
        }
    }
    
    for (int i=1; i<=n; i++) {
        for (int j=1; j<=i; j++) {
            // first and last binomial coefficients are
            // always 1
            if (i == 1 || j == i) {
                pascal[i][j] = 1;
            } else {
                pascal[i][j] = pascal[i-1][j-1] + pascal[i-1][j];
            }
        }
    }
    
    for (int i=1; i<=n; i++) {
        for (int j=1; j<=i; j++) {
            cout<<pascal[i][j]<<" ";
        }
        cout<<endl;
    }
    
}

int main() {
    int n = 7;
    printPascalTriangle (n);
    
    return 0;
}
