Open In App

C++ Program To Print Hollow Star Pyramid Diamond Shape Pattern

Improve
Improve
Like Article
Like
Save
Share
Report

Here, we will build a C++ program to print the hollow star pyramid diamond shape pattern that can be achieved with two approaches i.e.

  1. Using  for Loop
  2. Using while loop

Input:

n = 5

Output:

     *
   *  *
  *    *
 *      *
*        *
 *      *
  *    *
   *  *
    *

1. Using for loop

C++




// C++ program to print hollow diamond pattern
#include <iostream>
using namespace std;
 
int main()
{
 
    int n = 5, rows, columns;
    // for loop is used to identify the number of rows and
    // it is used to print upper triangle
    for (rows = 1; rows <= n; rows++) {
        // used for printing the spaces
        for (columns = n; columns > rows; columns--) {
            cout << " ";
        }
        // print star
        cout << "*";
        // again print the spaces
        for (columns = 1; columns < (rows - 1) * 2;
             columns++) {
            cout << " ";
        }
        if (rows == 1) {
            cout << "\n";
        }
        else {
            cout << "*\n";
        }
    }
    // for loop is used to identify the number of rows and
    // it is used to print lower triangle
    for (rows = n - 1; rows >= 1; rows--) {
        // used for printing the spaces
        for (columns = n; columns > rows; columns--) {
            cout << " ";
        }
        // print star
        cout << "*";
        for (columns = 1; columns < (rows - 1) * 2;
             columns++) {
            cout << " ";
        }
        if (rows == 1) {
            cout << "\n";
        }
        else {
            cout << "*\n";
        }
    }
    return 0;
}


Output

    *
   * *
  *   *
 *     *
*       *
 *     *
  *   *
   * *
    *

Time complexity: O(n2) for given input n

Auxiliary Space: O(1)

2. Using while loop:

C++




// C++ program to print hollow diamond pattern
#include <iostream>
using namespace std;
 
int main()
{
 
    int n = 5, rows = 1, columns;
 
    // while loop is used to identify the number of rows and
    // it is used to print upper triangle
    while (rows <= n) {
        columns = n;
 
        // used for printing the spaces
        while (columns > rows) {
            cout << " ";
            columns--;
        }
        // print star
        cout << "*";
        columns = 1;
        while (columns < (rows - 1) * 2) {
            cout << " ";
            columns++;
        }
        if (rows == 1) {
            cout << "\n";
        }
        else {
            cout << "*\n";
        }
        rows++;
    }
    // while loop is used to identify the number of rows and
    // it is used to print lower triangle
    rows = n - 1;
    while (rows >= 1) {
        columns = n;
        // used for printing the spaces
        while (columns > rows) {
            cout << " ";
            columns--;
        }
        // print star
        cout << "*";
        columns = 1;
        while (columns < (rows - 1) * 2) {
            cout << " ";
            columns++;
        }
        if (rows == 1) {
            cout << "\n";
        }
        else {
            cout << "*\n";
        }
        rows--;
    }
    return 0;
}


Output

    *
   * *
  *   *
 *     *
*       *
 *     *
  *   *
   * *
    *

Time complexity: O(rows*columns) 

Auxiliary Space: O(1)



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