Thursday, October 16, 2025
HomeData Modelling & AIProgram to print right and left arrow patterns

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
 

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

RELATED ARTICLES

Most Popular

Dominic
32361 POSTS0 COMMENTS
Milvus
88 POSTS0 COMMENTS
Nango Kala
6728 POSTS0 COMMENTS
Nicole Veronica
11892 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11953 POSTS0 COMMENTS
Shaida Kate Naidoo
6852 POSTS0 COMMENTS
Ted Musemwa
7113 POSTS0 COMMENTS
Thapelo Manthata
6805 POSTS0 COMMENTS
Umr Jansen
6801 POSTS0 COMMENTS