Open In App

Program for diamond pattern with different layers

Last Updated : 17 Feb, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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




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




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


Javascript




<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

Time Complexity : O(n2

Auxiliary Space : O(1)
 



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads