Given the value of R(number of rows), write a C++ program to print the Inverted Hollow Pyramid using stars and white spaces.
Examples:
Input: R = 5 Output: ********* * * * * * * * Input: R = 10 Output: ******************* * * * * * * * * * * * * * * * * *
Algorithm:
- At first, take the number of rows as input.
- The next step is to implement the nested loop to print this pattern.
- A space-maintaining variable(sp) is required to maintain the space at the beginning.
- Calculate the last column by Last Column = (length _of_row * 2 – (2 * Current_row – 1))
- Print star( “*” ) at the first column and last column and proceed to the next row.
Below is the C++ program to implement the above approach:
C++
// C++ program to Print a Inverted // hollow Star Pyramid #include <bits/stdc++.h> using namespace std;
void print_patt( int R)
{ // To iterate through the rows
for ( int i = 1; i <= R; i++)
{
// To print the beginning spaces
for ( int sp = 1;
sp <= i - 1 ; sp++)
{
cout << " " ;
}
// Iterating from ith column to
// last column (R*2 - (2*i - 1))
int last_col = (R * 2 - (2 * i - 1));
// To iterate through column
for ( int j = 1; j <= last_col; j++)
{
// To Print all star for first
// row (i==1) ith column (j==1)
// and for last column
// (R*2 - (2*i - 1))
if (i == 1)
cout << "*" ;
else if (j == 1)
cout << "*" ;
else if (j == last_col)
cout << "*" ;
else
cout << " " ;
}
// After printing a row proceed
// to the next row
cout << "\n" ;
}
} // Driver code int main()
{ // Number of rows
int R = 5;
print_patt(R);
return 0;
} |
Output
********* * * * * * * *
Time Complexity: O(R*last_col), where R represents the row and last_col represents the last column.
Auxiliary Space: O(1), no extra space is required, so it is a constant.