Program to print right and left arrow patterns

30 Apr, 2021
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++
Java
Python3
C#
PHP
Javascript
// C++ program to print Pyramid pattern#include <iostream>using namespace std; // function to print right arrow patternvoid 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 patternvoid 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 programint 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 program to print Pyramid patternclass GFG{ // function to print right arrow patternstatic 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 patternstatic 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 Codepublic 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 program to print Pyramid pattern # function to print right arrow patterndef 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 patterndef 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 Codeif __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# program to print Pyramid patternusing System; class GFG{ // function to print right arrow patternstatic 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 patternstatic 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 Codepublic 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 // function to print right arrow patternfunction 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 patternfunction 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 ?>
<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) 
Mithun Kumar
princiraj1992
Akanksha_Rai
gfg_sal_gfg
rdtank
pattern-printing
School Programming
pattern-printing
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.