# Program for diamond pattern with different layers

• Difficulty Level : Hard
• Last Updated : 28 May, 2021

Given a number n and using 0-n numbers you have to print such a pattern.
Examples:

```Input : n = 5
Output :
0
0 1 0
0 1 2 1 0
0 1 2 3 2 1 0
0 1 2 3 4 3 2 1 0
0 1 2 3 4 5 4 3 2 1 0
0 1 2 3 4 3 2 1 0
0 1 2 3 2 1 0
0 1 2 1 0
0 1 0
0

Input : n = 3
Output :
0
0 1 0
0 1 2 1 0
0 1 2 3 2 1 0
0 1 2 1 0
0 1 0
0```

The idea here is to count the space in beginning of string. In this pattern there are ((2 * n) + 1) rows. In rows form 0 to n number of spaces is (2 * (n â€“ i)). In row number from (n + 1) to (2 * n), number of space is ((i – n) * 2).
Below is the implementation of above approach:

## C++

 `// C++ code to print the pattern``#include ``using` `namespace` `std;` `// function to generate the pattern.``void` `pattern(``int` `n)``{``    ``// putting the space in line 1``    ``for` `(``int` `i = 1; i <= n * 2; i++)``        ``cout << ``" "``;   ``    ``cout << 0 << endl;` `    ``// generating the middle pattern.``    ``for` `(``int` `i = 1; i <= (n * 2) - 1; i++) {` `        ``// printing the increasing pattern``        ``if` `(i < n) {``            ``for` `(``int` `j = 1; j <= (n - i) * 2; j++)``                ``cout << ``" "``;``        ``}``        ``else` `{``            ``for` `(``int` `j = 1; j <= (i % n) * 2; j++)``                ``cout << ``" "``;``        ``}` `        ``if` `(i < n) {``            ``for` `(``int` `j = 0; j <= i % n; j++)``                ``cout << j << ``" "``;``            ``for` `(``int` `j = (i % n) - 1; j > 0; j--)``                ``cout << j << ``" "``;``            ``cout << 0;``        ``}` `        ``// printing the decreasing pattern``        ``else` `if` `(i > n) {``            ``for` `(``int` `j = 0; j <= n - (i - n); j++)``                ``cout << j << ``" "``;` `            ``for` `(``int` `j = (n - (i - n)) - 1; j > 0; j--)``                ``cout << j << ``" "``;``            ``cout << 0;``        ``}``        ``else` `{``            ``for` `(``int` `j = 0; j <= n; j++)``                ``cout << j << ``" "``;``            ``for` `(``int` `j = n - 1; j > 0; j--)``                ``cout << j << ``" "``;``            ``cout << 0;``        ``}``        ``cout << endl;``    ``}` `    ``// putting the space in last line``    ``for` `(``int` `i = 1; i <= n * 2; i++)``        ``cout << ``" "``;``    ``cout << 0;``}` `// driver function.``int` `main()``{``    ``int` `n = 4;``    ``pattern(n);``    ``return` `0;``}`

## Java

 `// Java code to print the pattern``import` `java.util.*;``import` `java.lang.*;` `public` `class` `GeeksforGeeks{``    ` `    ``// function to generate the pattern.``    ``public` `static` `void` `pattern(``int` `n){``        ` `        ``// putting the space in line 1``        ``for` `(``int` `i = ``1``; i <= n * ``2``; i++)``            ``System.out.print(``" "``);``        ``System.out.print(``0` `+ ``"\n"``);` `        ``// generating the middle pattern.``        ``for` `(``int` `i = ``1``; i <= (n * ``2``) - ``1``; i++) {` `        ``// printing the increasing pattern``        ``if` `(i < n) {``            ``for` `(``int` `j = ``1``; j <= (n - i) * ``2``; j++)``                ``System.out.print(``" "``);``        ``}``        ``else` `{``            ``for` `(``int` `j = ``1``; j <= (i % n) * ``2``; j++)``                ``System.out.print(``" "``);``        ``}` `        ``if` `(i < n) {``            ``for` `(``int` `j = ``0``; j <= i % n; j++)``                ``System.out.print(j + ``" "``);``            ``for` `(``int` `j = (i % n) - ``1``; j > ``0``; j--)``                ``System.out.print(j + ``" "``);``            ``System.out.print(``0``);``        ``}` `        ``// printing the decreasing pattern``        ``else` `if` `(i > n) {``            ``for` `(``int` `j = ``0``; j <= n - (i - n); j++)``                ``System.out.print(j + ``" "``);` `            ``for` `(``int` `j = (n - (i - n)) - ``1``; j > ``0``; j--)``                ``System.out.print(j + ``" "``);``            ``System.out.print(``0``);``        ``}``        ``else` `{``            ``for` `(``int` `j = ``0``; j <= n; j++)``                ``System.out.print(j + ``" "``);``            ``for` `(``int` `j = n - ``1``; j > ``0``; j--)``                ``System.out.print(j + ``" "``);``            ``System.out.print(``0``);``        ``}``        ``System.out.print(``"\n"``);``    ``}` `    ``// putting the space in last line``        ``for` `(``int` `i = ``1``; i <= n * ``2``; i++)``        ``System.out.print(``" "``);``        ``System.out.print(``0``);``    ``}` `    ``// driver code``    ``public` `static` `void` `main(String argc[]){``        ``int` `n = ``4``;``        ``pattern(n);``    ``}``}` `/*This code is contributed by Sagar Shukla.*/`

## Python3

 `# Python3 code to print the pattern` `# function to generate the pattern.``def` `pattern(n):` `    ``# putting the space in line 1``    ``for` `i ``in` `range``(``1``, n ``*` `2` `+` `1``):``        ``print``(end ``=` `" "``)``    ``print``(``"0"``)` `    ``# generating the middle pattern.``    ``for` `i ``in` `range``(``1``, n ``*` `2``):` `        ``# printing the increasing pattern``        ``if` `(i < n):``            ``for` `j ``in` `range``(``1``, (n ``-` `i) ``*` `2` `+` `1``):``                ``print``(end ``=` `" "``)``        ``else``:``            ``for` `j ``in` `range``(``1``, (i ``%` `n) ``*` `2` `+` `1``):``                ``print``(end ``=` `" "``)``        ` `        ``if` `(i < n):``            ``for` `j ``in` `range``(i ``%` `n ``+` `1``):``                ``print``(j, end ``=` `" "``)``            ``for` `j ``in` `range``(i ``%` `n ``-` `1``, ``-``1``, ``-``1``):``                ``print``(j, end ``=` `" "``)` `        ``# printing the decreasing pattern``        ``elif` `(i > n):``            ``for` `j ``in` `range``(n ``-` `(i ``-` `n) ``+` `1``):``                ``print``(j, end ``=` `" "``)``            ``for` `j ``in` `range``((n ``-` `(i ``-` `n)) ``-` `1``, ``-``1``, ``-``1``):``                ``print``(j, end ``=` `" "``)` `        ``else``:``            ``for` `j ``in` `range``(n ``+` `1``):``                ``print``(j, end ``=` `" "``)``            ``for` `j ``in` `range``(n ``-` `1``, ``-``1``, ``-``1``):``                ``print``(j, end ``=` `" "``)``                ` `        ``print``()``    ` `    ``# putting the space in last line``    ``for` `i ``in` `range``(``1``, n ``*` `2` `+` `1``):``        ``print``(end ``=` `" "``)``    ``print``(``"0"``, end ``=` `"")` `# Driver Code``n ``=` `4``;``pattern(n);` `# This code is contributed by``# mohit kumar 29`

## C#

 `// C# code to print the pattern``using` `System;` `public` `class` `GeeksforGeeks{``    ` `    ``// function to generate the pattern.``    ``public` `static` `void` `pattern(``int` `n){``        ` `        ``// putting the space in line 1``        ``for` `(``int` `i = 1; i <= n * 2; i++)``            ``Console.Write(``" "``);``        ``Console.Write(0 + ``"\n"``);` `        ``// generating the middle pattern.``        ``for` `(``int` `i = 1; i <= (n * 2) - 1; i++) {` `        ``// printing the increasing pattern``        ``if` `(i < n) {``            ``for` `(``int` `j = 1; j <= (n - i) * 2; j++)``                ``Console.Write(``" "``);``        ``}``        ``else` `{``            ``for` `(``int` `j = 1; j <= (i % n) * 2; j++)``                ``Console.Write(``" "``);``        ``}` `        ``if` `(i < n) {``            ``for` `(``int` `j = 0; j <= i % n; j++)``                ``Console.Write(j + ``" "``);``            ``for` `(``int` `j = (i % n) - 1; j > 0; j--)``                ``Console.Write(j + ``" "``);``            ``Console.Write(0);``        ``}` `        ``// printing the decreasing pattern``        ``else` `if` `(i > n) {``            ``for` `(``int` `j = 0; j <= n - (i - n); j++)``                ``Console.Write(j + ``" "``);` `            ``for` `(``int` `j = (n - (i - n)) - 1; j > 0; j--)``                ``Console.Write(j + ``" "``);``            ``Console.Write(0);``        ``}``        ``else` `{``            ``for` `(``int` `j = 0; j <= n; j++)``                ``Console.Write(j + ``" "``);``            ``for` `(``int` `j = n - 1; j > 0; j--)``                ``Console.Write(j + ``" "``);``            ``Console.Write(0);``        ``}``        ``Console.Write(``"\n"``);``    ``}` `    ``// putting the space in last line``        ``for` `(``int` `i = 1; i <= n * 2; i++)``        ``Console.Write(``" "``);``        ``Console.Write(0);``    ``}` `    ``// driver code``    ``public` `static` `void` `Main(``string` `[]argc){``        ``int` `n = 4;``        ``pattern(n);``    ``}``}` `// This code is contributed by rutvik_56.`

## PHP

 ` 0;``                                       ``\$j``--)``                ``echo` `\$j` `, ``" "``;``            ``echo` `0;``        ``}` `        ``// printing the``        ``// decreasing pattern``        ``else` `if` `(``\$i` `> ``\$n``)``        ``{``            ``for` `(``\$j` `= 0; ``\$j` `<= ``\$n` `- (``\$i` `- ``\$n``);``                                        ``\$j``++)``                ``echo` `\$j` `, ``" "``;` `            ``for` `(``\$j` `= (``\$n` `- (``\$i` `- ``\$n``)) - 1;``                              ``\$j` `> 0; ``\$j``--)``                ``echo` `\$j` `, ``" "``;``            ``echo` `0;``        ``}``        ``else` `{``            ``for` `(``\$j` `= 0; ``\$j` `<= ``\$n``; ``\$j``++)``                ``echo` `\$j` `,``" "``;``                ` `            ``for` `(``\$j` `= ``\$n` `- 1; ``\$j` `> 0; ``\$j``--)``                ``echo` `\$j` `, ``" "``;``        ``echo` `0;``        ``}``        ``echo` `"\n"``;``    ``}` `    ``// putting the space``    ``// in last line``    ``for` `(``\$i` `= 1; ``\$i` `<= ``\$n` `* 2; ``\$i``++)``        ``echo` `" "``;``    ``echo` `0;``}` `// Driver Code``\$n` `= 4;``pattern(``\$n``);` `// This code is contributed by ajit``?>`

## Javascript

 ``

Output:

```        0
0 1 0
0 1 2 1 0
0 1 2 3 2 1 0
0 1 2 3 4 3 2 1 0
0 1 2 3 2 1 0
0 1 2 1 0
0 1 0
0```

My Personal Notes arrow_drop_up