# Program to print Inverse Diamond pattern

• Difficulty Level : Easy
• Last Updated : 13 Mar, 2023

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:

1. The full Inverse Diamond is of 2n-1 rows for an input of n.
2. 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 *.
3. Printing each part, the required Inverse Diamond Pattern is obtained.

Below is the implementation of the above approach:

## C++

 // C++ Code to print // the inverse diamond shape     #include using namespace std;         // Function to Print Inverse Diamond pattern     // with 2n-1 rows void printDiamond(int n)     {         cout<

## Java

 // 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

 #Python3 program to print # the inverse diamond shape         # Function to Print Inverse # Diamond pattern # with 2n-1 rows def 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#

 // C# Code to print // the inverse diamond shape using System;  class GFG {   // Function to Print Inverse // Diamond pattern with 2n-1 rows static 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 Code public 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.



## Javascript



Output:

Inverse Diamond Pattern for n = 3

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

Inverse Diamond Pattern for n = 7

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

Time Complexity : O(n2)
Auxiliary Space : O(1)

My Personal Notes arrow_drop_up