Open In App

C++ Program To Print Floyd’s Triangle

Improve
Improve
Like Article
Like
Save
Share
Report

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 <bits/stdc++.h>
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 <bits/stdc++.h>
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 <bits/stdc++.h>
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.


Last Updated : 22 Jul, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads