Find the Nth row in Pascal’s Triangle in C++

Nth row of Pascal’s Triangle in C++

 

Here, in this page we will discuss the program to find Nth row of pascal’s triangle in C++ Programming language. We are given with a non-negative integer and we need to print the Nth row. We are assuming zero based starting of the rows.


Pascal Triangle :
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1 

Example : N=2

  • Output : 1 2 1
Nth row of pascal's triangle in C++

Method 1 (Using recursion):

  • Create a recursive function say getRow(int index).
  • Declare a vector say cur_row
  • Now, as the 1-st element of every row is 1 so, push 1 in cur_row vector.
  • Check if index == 0, then return cur_row.
  • Create a vector to hold the previous row, say prev and set prev = getRow(index-1)
  • Run a loop from [1, prev.size())
  • Take variable say curr = prev[i-1] + prev[i]
  • and push it to cur_row
  • As the last element of every row is 1 so again push 1 to cur_row vector.
  • And return cur_row

Code to find Nth row of Pascal's Triangle in C++

#include <bits/stdc++.h>
using namespace std;

//Recursive Function
vector<int> getRow(int index)
{
   vector<int> cur_row;

   // 1st element of every row is 1
   cur_row.push_back(1);

   if (index == 0)
   {
     return cur_row;
   }

   vector<int> prev = getRow(index - 1);

   for(int i = 1; i < prev.size(); i++)
   {
      int curr = prev[i - 1] + prev[i];
      cur_row.push_back(curr);
   }
   cur_row.push_back(1);

   return cur_row;
}

// Driver Code 
int main()
{
   int n = 2;
   vector<int> arr = getRow(n);

   for(int i = 0; i < arr.size(); i++)
   {
      if (i == arr.size() - 1)
          cout << arr[i];
      else
          cout << arr[i] << " ";
   }
   return 0;
}
Output :

1 2 1

Method 2 :

In this method we will discuss the efficient way to find the Nth row of the triangle.

  • Nth row = nC 0 nC1 nC2nCn
  • So, by using the above concept to find the nth row.
  • nCr = (nCr-1 * (n – r + 1))/r
  • Take a variable say prev=1 (as, nC0=1)and print prev.
  • Now, Run a loop from [1, N], take a variable say curr, and set curr = (prev * (N – i + 1)) / i;
  • And, Print Curr.
Nth row of pascal triangle

Code in C++

#include <bits/stdc++.h>
using namespace std;

//Function to print N-th row
void getrow(int N)
{
   int prev = 1;
   cout << prev;

   for (int i = 1; i <= N; i++) {
     int curr = (prev * (N - i + 1)) / i;
     cout << " " << curr;
     prev = curr;
   }
}

// Driver Program
int main()
{

  int N = 2;
  getrow(N);
  return 0;
}
Output :

1 2 1