# 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

## 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.

## 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`