Open In App

JavaScript Program to Print the Pattern G

Last Updated : 26 Feb, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

This program aims to print the pattern ‘G’ using asterisks (*) in the console output. The pattern ‘G’ consists of several horizontal and vertical lines arranged to form the uppercase letter ‘G’. It requires careful positioning of asterisks to represent the shape accurately.

Below are the methods to print the G pattern:

Using 2D matrix

In this approach, we have used the simple logic of iteration over lines to create the pattern G. We will use the conditions to print stars at particular positions which creates the G pattern.

Example: The below example uses the 2D matrix to print the pattern ‘G’ in JavaScript.

Javascript




function printPatternG(line) {
    for (let i = 0; i < line; i++) {
        let row = '';
        for (let j = 0; j < line; j++) {
            if ((j == 1 && i != 0 && i != line - 1) ||
                ((i == 0 || i == line - 1) && j > 1 && j < line - 2) ||
                (i == Math.floor((line - 1) / 2) && j > 2 && j < line - 1) ||
                (j == line - 2 && i != 0 && i >= Math.floor((line - 1) / 2) &&
                i != line - 1)
            )
                row += "*";
            else
                row += " ";
        }
        console.log(row);
    }
}
 
printPatternG(7)


Output

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

Using Recursive Approach

In this program, we have used the recursive method with the conditional logic to iterate over lines and print the pattern G.

Example: The below example using recursive approach to print the pattern ‘G’ in JavaScript.

Javascript




function printPatternGRecursive(line, i = 0) {
    if (i === line) {
        return;
    }
 
    let row = '';
    for (let j = 0; j < line; j++) {
        if ((j == 1 && i != 0 && i != line - 1) ||
            ((i == 0 || i == line - 1) && j > 1 && j < line - 2) ||
            (i == Math.floor((line - 1) / 2) && j > 2 && j < line - 1) ||
            (j == line - 2 && i != 0 && i >= Math.floor((line - 1) / 2) &&
            i != line - 1)
        )
            row += "*";
        else
            row += " ";
    }
    console.log(row);
    printPatternGRecursive(line, i + 1);
}
 
printPatternGRecursive(7);


Output

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


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads