Open In App

Program for Hexagonal Pattern

Improve
Improve
Like Article
Like
Save
Share
Report

Given a positive integer n, print a hexagonal pattern using start with each sides containing n stars. 
Example : 
 

Input : 4
Output :   
   *
  * *
 *   *
*     *
*     *
*     *
*     *
 *   *
  * *
   *
// Hexagon pattern with each side
// having n stars where n is the user input.

Input : 6
Output :   
     *
    * *
   *   *
  *     *
 *       *
*         *
*         *
*         *
*         *
*         *
*         *
 *       *
  *     *
   *   *
    * *
     *

 

C++




// C++ program to print hexagonal pattern
#include <stdio.h>
  
void printHexagon(int n)
{
    int l = 2 * n - 1;
  
    /**** Print upper part *****/
    for (int i = 0; i < n; i++)
    {
        int elem = i + n;
  
        // loop for printing the
        // whitespaces and the star
        for (int k = 0; k < elem; k++)
        {
            // prints the star
            if ((k == n + i - 1) || (k == n - i - 1))
                printf("*");
            else
                printf(" ");
        }
        printf("\n");
    }
  
    /**** Print middle part *****/
    // Here we print two vertical lines
    for (int m = 0; m < n - 2; m++)
    {
        for (int j = 0; j < l; j++)
        {
            if (j == 0 || j == l - 1)
                printf("*");
            else
                printf(" ");
        }
        printf("\n");
    }
  
    /**** Print Lower part *****/
    int r = n - 1;
    for (int h = r; h >= 0; h--)
    {
        int elem = h + n;
        for (int k = 0; k < elem; k++)
        {
            if ((k == n + h - 1) || (k == n - h - 1))
                printf("*");
            else
                printf(" ");
        }
        printf("\n");
    }
}
  
// Driver Code
int main()
{
    // length of a side
    // n >= 2
    int n = 3;
    printHexagon(n);
    return 0;
}


Java




// Java program to print hexagonal pattern
  
class GFG
{
    static void printHexagon(int n)
    {
        int l = 2 * n - 1;
      
        /**** Print upper part *****/
        for (int i = 0; i < n; i++)
        {
            int elem = i + n;
      
            // loop for printing the
            // whitespaces and the star
            for (int k = 0; k < elem; k++)
            {
                // prints the star
                if ((k == n + i - 1) ||
                    (k == n - i - 1))
                    System.out.print("*");
                else
                    System.out.print(" ");
            }
            System.out.print("\n");
        }
      
        /**** Print middle part *****/
        // Here we print two vertical lines
        for (int m = 0; m < n - 2; m++)
        {
            for (int j = 0; j < l; j++)
            {
                if (j == 0 || j == l - 1)
                    System.out.print("*");
                else
                    System.out.print(" ");
            }
            System.out.print("\n");
        }
      
        /**** Print Lower part *****/
        int r = n - 1;
        for (int h = r; h >= 0; h--)
        {
            int elem = h + n;
            for (int k = 0; k < elem; k++)
            {
                if ((k == n + h - 1) ||
                    (k == n - h - 1))
                    System.out.print("*");
                else
                    System.out.print(" ");
            }
            System.out.print("\n");
        }
    }
      
    // Driver code
    public static void main (String[] args)
    {
        // length of a side
        // n >= 2
        int n = 3;
        printHexagon(n);
    }
}
  
// This code is contributed by Anant Agarwal.


Python 3




# Python3 program to 
# print hexagonal pattern
def printHexagon(n):
  
    l = 2 * n - 1
  
    # Print upper part 
    for i in range(0, n):
      
        elem = i + n
  
        # loop for printing the
        # whitespaces and the star
        for k in range(0, elem):
          
            # prints the star
            if ((k == n + i - 1) or 
                (k == n - i - 1)):
                print("*", end = "")
            else:
                print(" ", end = "")
          
        print("")
      
    # Print middle part 
    # Here we print two 
    # vertical lines
    for m in range(0, n - 2):
      
        for j in range(0, l):
              
            if (j == 0 or j == l - 1):
                print("*", end = "")
            else:
                print(" ", end = "")
          
        print("")
      
    # Print Lower part 
    r = n - 1
    for h in range(r, -1, -1):
      
        elem = h + n
        for k in range(0, elem):
          
            if ((k == n + h - 1) or 
                (k == n - h - 1)):
                print("*", end = "")
            else:
                print(" ", end = "")
                  
        print("")
      
# Driver Code
# length of a side
# n >= 2
n = 3
printHexagon(n)
  
# This code is contributed
# by Smitha


C#




// C# program to print hexagonal pattern 
using System; 
class GFG 
    static void printHexagon(int n) 
    
        int l = 2 * n - 1; 
        
        /**** Print upper part *****/ 
        for (int i = 0; i < n; i++) 
        
            int elem = i + n; 
        
            // loop for printing the 
            // whitespaces and the star 
            for (int k = 0; k < elem; k++) 
            
                // prints the star 
                if ((k == n + i - 1) || 
                    (k == n - i - 1)) 
                    Console.Write("*"); 
                else 
                    Console.Write(" "); 
            
                    Console.WriteLine(); 
        
        
        /**** Print middle part *****/ 
        // Here we print two vertical lines 
        for (int m = 0; m < n - 2; m++) 
        
            for (int j = 0; j < l; j++) 
            
                if (j == 0 || j == l - 1) 
                    Console.Write("*"); 
                else 
                    Console.Write(" "); 
            
                   Console.WriteLine(); 
        
        
        /**** Print Lower part *****/ 
        int r = n - 1; 
        for (int h = r; h >= 0; h--) 
        
            int elem = h + n; 
            for (int k = 0; k < elem; k++) 
            
                if ((k == n + h - 1) || 
                    (k == n - h - 1)) 
                    Console.Write("*"); 
                else 
                    Console.Write(" "); 
            
                    Console.WriteLine(); 
        
    
        
    // Driver code 
    public static void Main () 
    
        // length of a side 
        // n >= 2 
        int n = 3; 
        printHexagon(n); 
    
    
// This code is contributed by vt_m.


PHP




<?php
// PHP implementation to 
// print hexagonal pattern
  
function printHexagon($n)
{
    $l = 2 * $n - 1;
  
    // Print upper part 
    for ($i = 0; $i < $n; $i++)
    {
        $elem = $i + $n;
  
        // loop for printing the
        // whitespaces and the star
        for ($k = 0; $k < $elem; $k++)
        {
            // prints the star
            if (($k == $n + $i - 1) || 
                ($k == $n - $i - 1))
                printf("*");
            else
                printf(" ");
        }
        printf("\n");
    }
  
    // Print middle part
    // Here we print two vertical lines
    for ($m = 0; $m < $n - 2; $m++)
    {
        for ($j = 0; $j < $l; $j++)
        {
            if ($j == 0 || $j == $l - 1)
                printf("*");
            else
                printf(" ");
        }
        printf("\n");
    }
  
    // Print Lower part 
    $r = $n - 1;
    for ($h = $r; $h >= 0; $h--)
    {
        $elem = $h + $n;
        for ($k = 0; $k < $elem; $k++)
        {
            if (($k == $n + $h - 1) || 
                ($k == $n - $h - 1))
                printf("*");
            else
                printf(" ");
        }
        printf("\n");
    }
}
  
// Driver Code
  
// length of a side n >= 2
$n = 3;
printHexagon($n);
  
// This code is contributed by mits 
?>


Javascript




<script>
      // JavaScript program to print hexagonal pattern
      function printHexagon(n) 
      {
        var l = 2 * n - 1;
  
        /**** Print upper part *****/
        for (var i = 0; i < n; i++)
        {
          var elem = i + n;
  
          // loop for printing the
          // whitespaces and the star
          for (var k = 0; k < elem; k++)
          {
            
            // prints the star
            if (k == n + i - 1 || k == n - i - 1) document.write("*");
            else document.write("  ");
          }
          document.write("<br>");
        }
  
        /**** Print middle part *****/
        // Here we print two vertical lines
        for (var m = 0; m < n - 2; m++)
        {
          for (var j = 0; j < l; j++)
          {
            if (j == 0 || j == l - 1) document.write("*");
            else document.write("  ");
          }
          document.write("<br>");
        }
  
        /**** Print Lower part *****/
        var r = n - 1;
        for (var h = r; h >= 0; h--)
        {
          var elem = h + n;
          for (var k = 0; k < elem; k++)
          {
            if (k == n + h - 1 || k == n - h - 1) document.write("*");
            else document.write("  ");
          }
          document.write("<br>");
        }
      }
  
      // Driver Code
      // length of a side
      // n >= 2
      var n = 3;
      printHexagon(n);
        
      // This code is contributed by rdtank.
    </script>


Output : 
 

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

Time complexity: O(n^2) for given input n

Auxiliary space: O(1)
 



Last Updated : 17 Feb, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads