GFG App
Open App
Browser
Continue

Program to print Inverse Diamond pattern

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. `

PHP

 ` `

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