# C++ Program To Print Floyd’s Triangle

• Last Updated : 22 Jul, 2022

Floyd’s triangle is a triangular array of natural numbers and it is named after Robert Floyd, a renowned computer scientist popularly known for the design of the Floydâ€“Warshall algorithm. Here, we will see how to print Floyd’s pattern triangle pyramid using the C++ program. Below are the examples:

Input: row = 5
Output:

2 3
4 5 6
7 8 9 10
11 12 13 14 15

Input: row = 4
Output:

2 3
4 5 6
7 8 9 10

Algorithm:

• At first, take the number of rows as input.
• The next step is to implement the nested loop to print this pattern.
• A variable name count maintains the value of natural numbers to be printed.

There are 3 ways to print Floyd’s pattern triangle pyramid:

1. Using for loop.
2. Using While loop.
3. Using Recursion.

Let’s start discussing each of these methods in detail.

## 1. Using for loop

Below is the C++ program to print Floyd’s pattern triangle using for loop:

## C++

 `// C++ program to print``// Floyd's pattern triangle``// using for loop``#include ``using` `namespace` `std;` `void` `print_patt(``int` `row)``{``    ``// Initializing count to 1.``    ``int` `count = 1;` `    ``// The outer loop maintains``    ``// the number of rows.``    ``for` `(``int` `i = 1; i <= row; i++)``    ``{``        ``// The inner loop maintains the``        ``// number of column.``        ``for` `(``int` `j = 1; j <= i; j++)``        ``{``            ``// To print the numbers``            ``cout << count << ``" "``;` `            ``// To keep increasing the count``            ``// of numbers``            ``count += 1;``        ``}``      ` `        ``// To proceed to next line.``        ``cout << ``"\n"``;``    ``}``}` `// Driver Code``int` `main()``{``    ``int` `row = 5;``    ``print_patt(row);``    ``return` `0;``}`

Output

```1
2 3
4 5 6
7 8 9 10
11 12 13 14 15 ```
• Time Complexity: O(n2) as the nested loop is used.
• Auxiliary Space: O(1) no extra space is required, so space is constant.

## 2. Using while loop

Below is the C++ program to print Floyd’s triangle using the While loop.

## C++

 `// C++ program to print``// Floyd's pattern triangle``// using while loop``#include ``using` `namespace` `std;` `void` `print_patt(``int` `row)``{``    ``// Initializing count to 1.``    ``int` `count = 1;` `    ``// Loop control variables.``    ``int` `i = 1, j;` `    ``// The outer loop maintains``    ``// the number of rows.``    ``while` `(i <= row)``    ``{``        ``// Reverting the value of j to 1``        ``// after each iteration.``        ``j = 1;` `        ``// The inner loop maintains the``        ``// number of column.``        ``while` `(j <= i)``        ``{``            ``// To print the numbers``            ``cout << count << ``" "``;` `            ``// To keep increasing the``            ``// count of numbers``            ``count += 1;``          ` `            ``// Increasing the count``            ``// of inner loop.``            ``j += 1;``        ``}``      ` `        ``// Increasing the count of outer loop.``        ``i += 1;``      ` `        ``// To proceed to next line.``        ``cout << ``"\n"``;``    ``}``}` `// Driver Code``int` `main()``{``    ``int` `row = 5;``    ``print_patt(row);``    ``return` `0;``}`

Output

```1
2 3
4 5 6
7 8 9 10
11 12 13 14 15 ```
• Time Complexity: O(n2) as the nested loop is used.
• Auxiliary Space: O(1) no extra space is required, so space is constant.

## 3. Using Recursion

Below is the C++ program to print Floyd’s triangle using Recursion:

## C++

 `// C++ program to print``// Floyd's pattern triangle``// using recursion``#include ``using` `namespace` `std;` `void` `print_patt(``int` `row, ``int` `curr_row,``                ``int` `count)``{``    ``// If row is less than 0, it``    ``// returns return.``    ``if` `(row <= 0)``        ``return``;` `    ``// The loop maintains the number``    ``// of rows.``    ``for` `(``int` `i = 1; i <= curr_row; i++)``    ``{``        ``// To print the numbers``        ``cout << count << ``" "``;` `        ``// To keep increasing the count``        ``// of numbers``        ``count += 1;``    ``}``  ` `    ``// To proceed to next line.``    ``cout << ``"\n"``;` `    ``// To increasing the current row``    ``curr_row += 1;` `    ``// Calling the function recursively.``    ``print_patt(row - 1,``               ``curr_row, count);``}` `// Driver Code``int` `main()``{``    ``int` `curr_row = 1;``    ``int` `count = 1;``    ``int` `row = 5;``    ``print_patt(row, curr_row, count);``    ``return` `0;``}`

Output

```1
2 3
4 5 6
7 8 9 10
11 12 13 14 15 ```
• Time Complexity: O(n2).
• Auxiliary Space: O(n) as a recursive approach is used.

My Personal Notes arrow_drop_up