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:
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15Input: row = 4
Output:
1
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:
- Using for loop.
- Using While loop.
- 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++ 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;
} |
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++ 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;
} |
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++ 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;
} |
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.