Open In App

JavaScript Program to Print the Pattern G

Last Updated : 26 Feb, 2024
Comments
Improve
Suggest changes
Like Article
Like
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
  ***  
 *     
 *     
 * *** 
 *   * 
 *   * 
  ***  

Next Article

Similar Reads