# C++ Program to Print the Pattern ‘G”

Last Updated : 11 Mar, 2023

In this article, we will learn how to print the pattern G using stars and white spaces. Given a number n, we will write a program to print the pattern G over n lines or rows.

Examples:

```Input : 7
Output :
***
*
*
* ***
*   *
*   *
***

Input : 9
Output :
*****
*
*
*
*   ***
*     *
*     *
*     *
*****  ```

In this program, we have used the simple logic of iteration over lines to create the pattern G. Please look at the image below which represents the pattern G in the form of a 2-d matrix, where mat[i][j] = ‘ij’:

Graphical Representation of G Pattern

If we try to analyze this picture with a (row, column) matrix and the circles represent the position of stars in the pattern G, we will learn the steps. Here we are performing the operations column-wise. So for the first line of stars, we set the first if condition, where the row position with 0 and (n-1) won’t get the stars, and all other rows from 1 to (n-1), will get the stars. Similarly, for the second, third, and fourth columns, we want stars at the position row = 0 and row = (n-1). The other steps are self-explanatory and can be understood from the position of rows and columns in the diagram.

Example:

## C

 `// C program to print the pattern G ` `#include ` ` `  `void` `pattern(``int` `line) ` `{ ` `    ``int` `i, j; ` `    ``for` `(i = 0; i < line; i++) { ` `        ``for` `(j = 0; j < line; j++) { ` `            ``if` `((j == 1 && i != 0 && i != line - 1) ` `                ``|| ((i == 0 || i == line - 1) && j > 1 ` `                    ``&& j < line - 2) ` `                ``|| (i == ((line - 1) / 2) && j > 2 ` `                    ``&& j < line - 1) ` `                ``|| (j == line - 2 && i != 0 ` `                    ``&& i >= ((line - 1) / 2) ` `                    ``&& i != line - 1)) ` `                ``printf``(``"*"``); ` `            ``else` `                ``printf``(``" "``); ` `        ``} ` `        ``printf``(``"\n"``); ` `    ``} ` `} ` `int` `main() ` `{ ` `    ``int` `line = 7; ` `    ``pattern(line); ` `    ``return` `0; ` `}`

Output

```  ***
*
*
* ***
*   *
*   *
***  ```

Time Complexity: O(n2), where n represents the given input.
Auxiliary Space: O(1), no extra space is required, so it is a constant.