Program to print the pattern ‘G’

 

Program to print the pattern ‘G’

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’:
G
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 column 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.

Below is the implementation of above idea:


// C++ program to print the pattern G 
#include <iostream>
using namespace std;
  
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");
    }
}
  
// Driver code
int main() 
{
    int line = 7;
    pattern(line);
    return 0;
}
  
// This code is contributed 

Output:
  ***  
 *     
 *     
 * *** 
 *   * 
 *   * 
  ***  

No comments:

Post a Comment

Your feedback is highly appreciated and will help us to improve our content.