Program for diamond pattern with different layers - GeeksforGeeks

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++
Java
Python3
C#
PHP
Javascript
// C++ code to print the pattern#include <bits/stdc++.h>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 code to print the patternimport 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 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 Coden = 4;pattern(n); # This code is contributed by# mohit kumar 29
// C# code to print the patternusing 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// PHP code to print// the pattern // function to generate// the pattern.function pattern($n){    // putting the    // space in line 1    for ($i = 1; $i <= $n * 2;                         $i++)        echo " ";    echo 0 , "\n";     // generating the    // middle pattern.    for ($i = 1; $i <= ($n * 2) - 1;                               $i++)    {         // printing the        // increasing pattern        if ($i < $n)        {            for ($j = 1;                 $j <= ($n - $i) * 2;                 $j++)                echo " ";        }        else        {            for ($j = 1;                 $j <= ($i % $n) * 2;                 $j++)                echo " ";        }         if ($i < $n)        {            for ($j = 0; $j <= $i % $n;                                  $j++)                echo $j , " ";            for ($j = ($i % $n) - 1; $j > 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?>
<script>// Javascript code to print the pattern         // function to generate the pattern.    function pattern(n)    {        // putting the space in line 1        for (let i = 1; i <= n * 2; i++)            document.write(" ");        document.write(0 + "<br>");           // generating the middle pattern.        for (let i = 1; i <= (n * 2) - 1; i++) {           // printing the increasing pattern        if (i < n) {            for (let j = 1; j <= (n - i) * 2; j++)                document.write(" ");        }        else {            for (let j = 1; j <= (i % n) * 2; j++)                document.write(" ");        }           if (i < n) {            for (let j = 0; j <= i % n; j++)                document.write(j + " ");            for (let j = (i % n) - 1; j > 0; j--)                document.write(j + " ");            document.write(0);        }           // printing the decreasing pattern        else if (i > n) {            for (let j = 0; j <= n - (i - n); j++)                document.write(j + " ");               for (let j = (n - (i - n)) - 1; j > 0; j--)                document.write(j + " ");            document.write(0);        }        else {            for (let j = 0; j <= n; j++)                document.write(j + " ");            for (let j = n - 1; j > 0; j--)                document.write(j + " ");            document.write(0);        }        document.write("<br>");    }       // putting the space in last line        for (let i = 1; i <= n * 2; i++)        document.write(" ");        document.write(0);    }         let n = 4;    pattern(n);      // This code is contributed by patel2127</script>
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
 
Abhishek Sharma 44
jit_t
mohit kumar 29
patel2127
rutvik_56
pattern-printing
School Programming
pattern-printing
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Constructors in Java
Exceptions in Java
Ternary Operator in Python
Inline Functions in C++
Pure Virtual Functions and Abstract Classes in C++
Destructors in C++
Difference between Abstract Class and Interface in Java
Python Exception Handling
Exception Handling in C++
Taking input from console in Python