Program for diamond pattern with different layers

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

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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.WriteLine(0 + ""); 
  
        // 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.WriteLine();
    }
  
    // 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(){
        int n = 4;
        pattern(n);
    }
}
  
/*This code is contributed by vt_m.*/

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right



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


If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.