Program to print right and left arrow patterns

Write to program to print the right arrow pattern and the left arrow pattern formed of stars. Input is an odd number n which represents height and width of pattern to be printed.
Examples: 
 

Input : n = 9
Output :
    *
     *               
      *  
       *
*********
       *
      *
     *
    *


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


Input : n = 7
Output :
   *
    *
     *
*******
     *
    *
   *


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

 

 

C++




// C++ program to print Pyramid pattern
#include <iostream>
using namespace std;
  
// function to print right arrow pattern
void rightpattern(int n)
{
    // for printing upper portion
    int c1 = (n - 1) / 2;
  
    // for printing lower portion
    int c2 = 3 * n / 2 - 1;
  
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
  
            // checking conditions to print right arrow
            if (j - i == c1 || i + j == c2 || i == c1)
                cout << "*";
  
            // otherwise print space
            else
                cout << " ";
        }
        // for jumping to next line
        cout << "\n";
    }
}
  
// function to print left arrow pattern
void leftpattern(int n)
{
    char s = ' ';
    char st = '*';
  
    // for printing upper part
    for (int i = (n - 1) / 2; i > 0; i--)
        cout << string(i, s) << st << endl;
  
    // for printing middle part
    for (int i = 0; i < n; i++)
        cout << "*";
    cout << endl;
  
    // for printing lower part
    for (int i = 1; i <= (n - 1) / 2; i++)
        cout << string(i, s) << st << endl;
    cout << endl;
}
  
// Driver program
int main()
{
    int n = 9; // Must be odd
  
    // function calling to print right arrow
    rightpattern(n);
  
    cout << endl  << endl;
  
    // function calling to print left arrow
    leftpattern(n);
  
    return 0;
}


Java




// Java program to print Pyramid pattern 
class GFG 
{
  
// function to print right arrow pattern 
static void rightpattern(int n)
{
    // for printing upper portion 
    int c1 = (n - 1) / 2;
  
    // for printing lower portion 
    int c2 = 3 * n / 2 - 1;
  
    for (int i = 0; i < n; i++) 
    {
        for (int j = 0; j < n; j++) 
        {
  
            // checking conditions to print
            // right arrow 
            if (j - i == c1 || 
                i + j == c2 || i == c1) 
            {
                System.out.print("*");
            } // otherwise print space 
            else 
            {
                System.out.print(" ");
            }
        }
        // for jumping to next line 
        System.out.print("\n");
    }
}
  
static void string(int n) 
{
    for (int i = n; i > 0; i--) 
    {
        System.out.print(" ");
    }
}
  
// function to print left arrow pattern 
static void leftpattern(int n) 
{
    char s = ' ';
    char st = '*';
  
    // for printing upper part 
    for (int i = (n - 1) / 2; i > 0; i--) 
    {
        string(i);
        System.out.println(st);
    }
      
    // for printing middle part 
    for (int i = 0; i < n; i++) 
    {
        System.out.print("*");
    }
    System.out.println();
  
    // for printing lower part 
    for (int i = 1; i <= (n - 1) / 2; i++) 
    {
        string(i);
        System.out.println(st);
    }
    System.out.println();
}
  
// Driver Code
public static void main(String args[])
{
    int n = 9; // Must be odd 
  
    // function calling to print 
    // right arrow 
    rightpattern(n);
  
    System.out.println("\n");
  
    // function calling to print 
    // left arrow 
    leftpattern(n);
}
}
  
// This code is contributed 
// by PrinciRaj1992 


Python3




# Python3 program to print Pyramid pattern
  
# function to print right arrow pattern
def rightpattern(n):
      
    # for printing upper portion
    c1 = (n - 1) // 2;
  
    # for printing lower portion
    c2 = 3 * n // 2 - 1;
  
    for i in range(n):
  
        for j in range(n):
  
            # checking conditions to print
            # right arrow
            if (j - i == c1 or
                i + j == c2 or i == c1):
  
                print("*", end = "");
                  
            # otherwise print space
            else:
  
                print(" ", end = "");
  
        # for jumping to next line
        print();
  
def string(n):
  
    for i in range(n):
        print(" ", end = "");
  
# function to print left arrow pattern
def leftpattern(n):
  
    s = ' ';
    st = '*';
  
    # for printing upper part
    for i in range((n - 1) // 2, 0, -1):
        string(i);
        print(st);
  
    # for printing middle part
    for i in range(n):
        print("*", end = "");
  
    print();
  
    # for printing lower part
    for i in range(1, ((n - 1) // 2) + 1):
        string(i);
        print(st);
  
    print();
  
# Driver Code
if __name__ == '__main__':
    n = 9; # Must be odd
  
    # function calling to print
    # right arrow
    rightpattern(n);
  
    print("");
  
    # function calling to print
    # left arrow
    leftpattern(n);
  
# This code is contributed by PrinciRaj1992


C#




// C# program to print Pyramid pattern 
using System;
  
class GFG 
{
  
// function to print right arrow pattern 
static void rightpattern(int n)
{
    // for printing upper portion 
    int c1 = (n - 1) / 2;
  
    // for printing lower portion 
    int c2 = 3 * n / 2 - 1;
  
    for (int i = 0; i < n; i++) 
    {
        for (int j = 0; j < n; j++) 
        {
  
            // checking conditions to print
            // right arrow 
            if (j - i == c1 || 
                i + j == c2 || i == c1) 
            {
                Console.Write("*");
            } // otherwise print space 
            else
            {
                Console.Write(" ");
            }
        }
        // for jumping to next line 
        Console.Write("\n");
    }
}
  
static void String(int n) 
{
    for (int i = n; i > 0; i--) 
    {
        Console.Write(" ");
    }
}
  
// function to print left arrow pattern 
static void leftpattern(int n) 
{
    char s = ' ';
    char st = '*';
  
    // for printing upper part 
    for (int i = (n - 1) / 2; i > 0; i--) 
    {
        String(i);
        Console.WriteLine(st);
    }
      
    // for printing middle part 
    for (int i = 0; i < n; i++) 
    {
        Console.Write("*");
    }
    Console.WriteLine();
  
    // for printing lower part 
    for (int i = 1; i <= (n - 1) / 2; i++) 
    {
        String(i);
        Console.WriteLine(st);
    }
    Console.WriteLine();
}
  
// Driver Code
public static void Main()
{
    int n = 9; // Must be odd 
  
    // function calling to print 
    // right arrow 
    rightpattern(n);
  
    Console.WriteLine("\n");
  
    // function calling to print 
    // left arrow 
    leftpattern(n);
}
}
  
// This code is contributed 
// by Akanksha Rai


PHP




<?php
  
// function to print right arrow pattern
function rightpattern($n)
{
      
    // for printing upper portion
    $c1 = ($n - 1) / 2;
  
    // for printing lower portion
    $c2 = floor(3 * $n / 2 - 1);
  
    for ($i = 0; $i < $n; $i++)
    {
        for ($j = 0; $j < $n; $j++) 
        {
  
            // checking conditions to 
            // print right arrow
            if (($j - $i) == $c1 || 
                ($i + $j) == $c2 || 
                 $i == $c1)
                echo "*";
  
            // otherwise print space
            else
                echo " ";
        }
          
        // for jumping to next line
        echo "\n";
    }
}
  
// function to print left arrow pattern
function leftpattern($n)
{
    $s = ' ';
    $st = '*';
  
    // for printing upper part
    for ($i = ($n - 1) / 2; $i > 0; $i--)
    {
    for($j = 0; $j < $i; $j++)
        echo " ";
    echo $st."\n";
    }
      
    // for printing middle part
    for ($i = 0; $i < $n; $i++)
        echo "*";
    echo "\n";
  
    // for printing lower part
    for ($i = 1; $i <= ($n - 1) / 2; $i++)
    {
            for($j = 0; $j < $i; $j++)
        echo " ";
    echo $st."\n";
    }
    echo "\n";
}
  
    // Driver Code
    $n = 9; // Must be odd
  
    // function calling to 
    // print right arrow
    rightpattern($n);
  
    echo "\n\n";
  
    // function calling to 
    // print left arrow
    leftpattern($n);
  
  
// This code is contributed by mits 
  
?>


Javascript




<script>
  
      // function to print right arrow pattern
      function rightpattern(n) {
        // for printing upper portion
        var c1 = (n - 1) / 2;
  
        // for printing lower portion
        var c2 = Math.floor((3 * n) / 2 - 1);
  
        for (var i = 0; i < n; i++) {
          for (var j = 0; j < n; j++) {
            // checking conditions to
            // print right arrow
            if (j - i === c1 || i + j === c2 
            || i === c1) 
            document.write("*");
            // otherwise print space
            else 
            document.write("  ");
          }
  
          // for jumping to next line
          document.write("<br>");
        }
      }
  
      // function to print left 
      // arrow pattern
      function leftpattern(n) {
        var s = " ";
        var st = "*";
  
        // for printing upper part
        for (var i = (n - 1) / 2; i > 0; i--) {
          for (var j = 0; j < i; j++) 
          document.write("  ");
          document.write(st + "<br>");
        }
  
        // for printing middle part
        for (var i = 0; i < n; i++) 
        document.write("*");
        document.write("<br>");
  
        // for printing lower part
        for (var i = 1; i <= (n - 1) / 2; i++)
        {
          for (var j = 0; j < i; j++) 
          document.write("  ");
          document.write(st + "<br>");
        }
        document.write("<br>");
      }
  
      // Driver Code
      var n = 9; // Must be odd
      // function calling to
      // print right arrow
      rightpattern(n);
      document.write("<br><br>");
      // function calling to
      // print left arrow
      leftpattern(n);
        
</script>


Output:  

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


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

Time Complexity: O(n^2)

Auxiliary Space: O(1) because it is using constant space for variables
 



Contact Us