Program to print Inverse Diamond pattern

21 Apr, 2021
Given an integer n, the task is to print the Inverse Diamond Pattern in 2n-1 rows.Example:  
Input: n = 3
Output:

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

Input: n = 7
Output:

******* *******
******   ******
*****     *****
****       ****
***         ***
**           **
*             *
**           **
***         ***
****       ****
*****     *****
******   ******
******* *******
 
Approach:  
The full Inverse Diamond is of 2n-1 rows for an input of n.The program is divided to print this pattern in two parts: The first part is the top half of diamond of n rows.This part includes 3 parts- the left triangle of *, the middle triangle of space and the right triangle of *.The second part is the below half of diamond of n-1 rows.This part also includes 3 parts- the left triangle of *, the middle triangle of space and the right triangle of *.Printing each part, the required Inverse Diamond Pattern is obtained.
The full Inverse Diamond is of 2n-1 rows for an input of n.
The program is divided to print this pattern in two parts: The first part is the top half of diamond of n rows.This part includes 3 parts- the left triangle of *, the middle triangle of space and the right triangle of *.The second part is the below half of diamond of n-1 rows.This part also includes 3 parts- the left triangle of *, the middle triangle of space and the right triangle of *.
The first part is the top half of diamond of n rows.
This part includes 3 parts- the left triangle of *, the middle triangle of space and the right triangle of *.
The second part is the below half of diamond of n-1 rows.
This part also includes 3 parts- the left triangle of *, the middle triangle of space and the right triangle of *.
Printing each part, the required Inverse Diamond Pattern is obtained.
Below is the implementation of the above approach:  
C++
Java
Python3
C#
PHP
Javascript
// C++ Code to print// the inverse diamond shape   #include<bits/stdc++.h> using namespace std;       // Function to Print Inverse Diamond pattern    // with 2n-1 rowsvoid printDiamond(int n)    {        cout<<endl;           int i, j = 0;           // for top half        for (i = 0; i < n; i++) {               // for left *            for (j = i; j < n; j++)                cout<<"*";               // for middle " "            for (j = 0; j < 2 * i + 1; j++)                cout<<" ";               // for right *            for (j = i; j < n; j++)                cout<<"*";               cout<<endl;        }           // for below half        for (i = 0; i < n - 1; i++) {               // for left *            for (j = 0; j < i + 2; j++)                cout<<"*";               // for middle " "            for (j = 0; j < 2 * (n - 1 - i) - 1; j++)                cout<<" ";               // for right *            for (j = 0; j < i + 2; j++)                cout<<"*";               cout<<endl;        }           cout<<endl;    }       // Driver Code    int main()    {           // Define n        int n = 3;        cout<<"Inverse Diamond Pattern for n = "<<n;        printDiamond(n);           n = 7;        cout<<"\nInverse Diamond Pattern for n = "<<n;        printDiamond(n);    }
// Java Code to print// the inverse diamond shape import java.util.*; class GFG {     // Function to Print Inverse Diamond pattern    // with 2n-1 rows    static void printDiamond(int n)    {        System.out.println();         int i, j = 0;         // for top half        for (i = 0; i < n; i++) {             // for left *            for (j = i; j < n; j++)                System.out.print("*");             // for middle " "            for (j = 0; j < 2 * i + 1; j++)                System.out.print(" ");             // for right *            for (j = i; j < n; j++)                System.out.print("*");             System.out.println();        }         // for below half        for (i = 0; i < n - 1; i++) {             // for left *            for (j = 0; j < i + 2; j++)                System.out.print("*");             // for middle " "            for (j = 0; j < 2 * (n - 1 - i) - 1; j++)                System.out.print(" ");             // for right *            for (j = 0; j < i + 2; j++)                System.out.print("*");             System.out.println();        }         System.out.println();    }     // Driver Code    public static void main(String[] args)    {         // Define n        int n = 3;        System.out.println("Inverse Diamond Pattern for n = " + n);        printDiamond(n);         n = 7;        System.out.println("\nInverse Diamond Pattern for n = " + n);        printDiamond(n);    }}
#Python3 program to print# the inverse diamond shape      # Function to Print Inverse# Diamond pattern# with 2n-1 rowsdef printDiamond(n) :    print("")    j = 0         # for top half    for i in range(0,n):                 # for left *        for j in range(i,n):            print("*",end="")                     # for middle " "        for j in range(0,2 * i + 1):            print(" ",end="")                     # for right *        for j in range(i,n):            print("*",end="")                     print("")         # for below half    for i in range(0,n-1):                 # for left *        for j in range(0, i+2):            print("*",end="")                     # for middle " "        for j in range(0,2 * (n - 1 - i) - 1):            print(" ",end="")                     # for right *        for j in range(0, i+2):            print("*",end="")                     print("")             print("")          # Driver Code if __name__=='__main__':     # Define n    n = 3    print("Inverse Diamond Pattern for n = ",n)    printDiamond(n)         n = 7    print("\nInverse Diamond Pattern for n = ",n )    printDiamond(n) # this code is contributed by Smitha Dinesh Semwal
// C# Code to print// the inverse diamond shapeusing System; class GFG{ // Function to Print Inverse// Diamond pattern with 2n-1 rowsstatic void printDiamond(int n){    Console.WriteLine();     int i, j = 0;     // for top half    for (i = 0; i < n; i++)    {         // for left *        for (j = i; j < n; j++)            Console.Write("*");         // for middle " "        for (j = 0; j < 2 * i + 1; j++)            Console.Write(" ");         // for right *        for (j = i; j < n; j++)            Console.Write("*");         Console.WriteLine();    }     // for below half    for (i = 0; i < n - 1; i++)    {         // for left *        for (j = 0; j < i + 2; j++)            Console.Write("*");         // for middle " "        for (j = 0; j < 2 * (n - 1 - i) - 1; j++)            Console.Write(" ");         // for right *        for (j = 0; j < i + 2; j++)            Console.Write("*");         Console.WriteLine();    }     Console.WriteLine();} // Driver Codepublic static void Main(){     // Define n    int n = 3;    Console.WriteLine("Inverse Diamond " +                      "Pattern for n = " + n);    printDiamond(n);     n = 7;    Console.WriteLine("\nInverse Diamond " +                        "Pattern for n = " + n);    printDiamond(n);}} // This code is contributed// by inder_verma.
<?php// PHP Code to print// the inverse diamond shape // Function to Print Inverse// Diamond pattern with 2n-1 rowsfunction printDiamond($n){    echo"\n";     $i; $j = 0;     // for top half    for ($i = 0; $i < $n; $i++)    {         // for left *        for ($j = $i; $j < $n; $j++)            echo("*");         // for middle " "        for ($j = 0;             $j < 2 * $i + 1; $j++)            echo(" ");         // for right *        for ($j = $i; $j < $n; $j++)            echo("*");         echo("\n");    }     // for below half    for ($i = 0; $i < $n - 1; $i++)    {         // for left *        for ($j = 0; $j < $i + 2; $j++)            echo("*");         // for middle " "        for ($j = 0;             $j < 2 * ($n - 1 - $i) - 1; $j++)            echo(" ");         // for right *        for ($j = 0; $j < $i + 2; $j++)            echo("*");         echo("\n");    }     echo("\n");} // Driver Code // Define n$n = 3;echo("Inverse Diamond Pattern for n = " );echo($n);printDiamond($n); $n = 7;echo("\nInverse Diamond Pattern for n = " );echo($n);printDiamond($n); // This code is contributed// by inder_verma.?>
<script>       // JavaScript Code to print      // the inverse diamond shape       // Function to Print Inverse Diamond pattern      // with 2n-1 rows      function printDiamond(n) {        document.write("<br><br>");         var i,          j = 0;         // for top half        for (i = 0; i < n; i++) {          // for left *          for (j = i; j < n; j++)          document.write("*");           // for middle " "          for (j = 0; j < 2 * i + 1; j++)          document.write("  ");           // for right *          for (j = i; j < n; j++)          document.write("*");           document.write("<br>");        }         // for below half        for (i = 0; i < n - 1; i++) {          // for left *          for (j = 0; j < i + 2; j++)          document.write("*");           // for middle " "          for (j = 0; j < 2 * (n - 1 - i) - 1; j++)            document.write("  ");           // for right *          for (j = 0; j < i + 2; j++)          document.write("*");           document.write("<br>");        }         document.write("<br>");      }       // Driver Code      // Define n      var n = 3;      document.write("Inverse Diamond Pattern for n = " + n);      printDiamond(n);       n = 7;      document.write("\nInverse Diamond Pattern for n = " + n);      printDiamond(n);       </script>
Inverse Diamond Pattern for n = 3

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


Inverse Diamond Pattern for n = 7

******* *******
******   ******
*****     *****
****       ****
***         ***
**           **
*             *
**           **
***         ***
****       ****
*****     *****
******   ******
******* *******
 
inderDuMCA
tufan_gupta2000
Smitha Dinesh Semwal
rdtank
pattern-printing
Java Programs
School Programming
pattern-printing
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Factory method design pattern in Java
Java Program to Remove Duplicate Elements From the Array
Iterate through List in Java
Java program to count the occurrence of each character in a string using Hashmap
How to Iterate HashMap in Java?
Python Dictionary
Reverse a string in Java
Arrays in C/C++
Introduction To PYTHON
Interfaces in Java