Open In App

Program to print numbers with diamond pattern

write a program where each column represents same number according to given example:
Examples : 
 

Input : 5
Output :
  1
 212
32123
 212
  1

Input : 7
Output :
   1
  212
 32123
4321234
 32123
  212
   1

 




// C++ program to print diamond pattern 
#include<iostream>
using namespace std;
  
void display(int n) 
    // sp stands for space 
    // st stands for number 
    int sp = n / 2, st = 1; 
  
    // Outer for loop for number of lines 
    for (int i = 1; i <= n; i++) 
    
  
        // Inner for loop for printing space 
        for (int j = 1; j <= sp; j++) 
            cout << " "
  
        // Inner for loop for printing number 
        int count = st / 2 + 1; 
        for (int k = 1; k <= st; k++) 
        
            cout << count; 
            if (k <= st / 2) 
                count--; 
            else
                count++; 
        
  
        // To goto next line 
        cout << endl; 
        if (i <= n / 2)
        
  
            // sp decreased by 1 
            // st increased by 2 
            sp = sp - 1; 
            st = st + 2; 
        
  
        else 
        
  
            // sp increased by 1 
            // st decreased by 2 
            sp = sp + 1; 
            st = st - 2; 
        
    
  
// Driver code 
int main() 
    int n = 7; 
    display(n); 
  
// This code is contributed by Smitha




// Java program to print diamond pattern
import java.util.Scanner;
  
class Pattern {
    void display(int n)
    {
        // sp stands for space
        // st stands for number
        int sp = n / 2, st = 1;
  
        // Outer for loop for number of lines
        for (int i = 1; i <= n; i++) {
  
            // Inner for loop for printing space
            for (int j = 1; j <= sp; j++)
                System.out.print(" ");
  
            // Inner for loop for printing number
            int count = st / 2 + 1;
            for (int k = 1; k <= st; k++) {
                System.out.print(count);
                if (k <= st / 2)
                    count--;
                else
                    count++;
            }
  
            // To goto next line
            System.out.println();
            if (i <= n / 2) {
  
                // sp decreased by 1
                // st increased by 2
                sp = sp - 1;
                st = st + 2;
            }
  
            else {
  
                // sp increased by 1
                // st decreased by 2
                sp = sp + 1;
                st = st - 2;
            }
        }
    }
  
    // Driver code
    public static void main(String[] args)
    {
        Pattern p = new Pattern();
        int n = 7;
        p.display(n);
    }
}




# Python3 program to print diamond pattern
def display(n):
      
    # sp stands for space
    # st stands for number
    sp = n // 2
    st = 1
      
    # Outer for loop for number of lines
    for i in range(1, n + 1):
          
        # Inner for loop for printing space
        for j in range(1, sp + 1):
            print (" ", end = ' ')
  
        # Inner for loop for printing number         
        count = st // 2 + 1
          
        for k in range(1, st + 1):
            print (count, end = ' ')
            if (k <= (st // 2)):
                count -= 1
            else:
                count += 1
                  
        # To go to next line     
        print() 
          
        if (i <= n // 2):
              
            # sp decreased by 1
            # st decreased by 2 
            sp -= 1
            st += 2
        else:
              
            # sp increased by 1 
            # st decreased by 2
            sp += 1
            st -= 2    
              
# Driver code         
n = 7
display(n)
  
# This code is contributed by DrRoot_




// C# program to print diamond pattern
using System;
  
class Pattern {
    void display(int n)
    {
        // sp stands for space
        // st stands for number
        int sp = n / 2, st = 1;
  
        // Outer for loop for number of lines
        for (int i = 1; i <= n; i++) {
  
            // Inner for loop for printing space
            for (int j = 1; j <= sp; j++)
                Console.Write(" ");
  
            // Inner for loop for printing number
            int count = st / 2 + 1;
            for (int k = 1; k <= st; k++) {
                Console.Write(count);
                if (k <= st / 2)
                    count--;
                else
                    count++;
            }
  
            // To goto next line
            Console.WriteLine();
            if (i <= n / 2) {
  
                // sp decreased by 1
                // st increased by 2
                sp = sp - 1;
                st = st + 2;
            }
  
            else {
  
                // sp increased by 1
                // st decreased by 2
                sp = sp + 1;
                st = st - 2;
            }
        }
    }
  
    // Driver code
    public static void Main()
    {
        Pattern p = new Pattern();
        int n = 7;
        p.display(n);
    }
}
//This code is contributed by vt_m




<?php
// php program to print diamond pattern
  
function display($n)
    {
        // sp stands for space
        // st stands for number
        $sp = $n / 2;
        $st = 1;
  
        // Outer for loop for
        // number of lines
        for ($i = 1; $i <= $n; $i++) 
        {
  
            // Inner for loop for 
            // printing space
            for ($j = 1; $j <= $sp; $j++)
                echo " ";
  
            // Inner for loop for 
            // printing number
            $count = $st / 2 + 1;
            for ($k = 1; $k <= $st; $k++) 
            {
                // To hide floating 
                // value using floor()
                echo floor($count); 
                if ($k <= $st / 2)
                    $count--;
                else
                    $count++;
            }
  
            // for next line
            echo "\n";
            if ($i <= $n / 2) 
            {
  
                // sp decreased by 1
                // st increased by 2
                $sp = $sp - 1;
                $st = $st + 2;
            }
  
            else 
            {
  
                // sp increased by 1
                // st decreased by 2
                $sp = $sp + 1;
                $st = $st - 2;
            }
        }
    }
  
    // Driver code
       $n = 7;
       display($n);
  
  
// This article is contributed by mits 
  
?>




<script>
      // JavaScript program to print diamond pattern
  
      function display(n) {
        // sp stands for space
        // st stands for number
        var sp = parseInt(n / 2),
          st = 1;
  
        // Outer for loop for number of lines
        for (var i = 1; i <= n; i++) {
          // Inner for loop for printing space
          for (var j = 1; j <= sp; j++) document.write("  ");
  
          // Inner for loop for printing number
          var count = parseInt(st / 2 + 1);
          for (var k = 1; k <= st; k++) {
            document.write(count);
            if (k <= st / 2) count--;
            else count++;
          }
  
          // To goto next line
          document.write("<br>");
          if (i <= n / 2) 
          {
            
            // sp decreased by 1
            // st increased by 2
            sp = sp - 1;
            st = st + 2;
          
          else
          {
            
            // sp increased by 1
            // st decreased by 2
            sp = sp + 1;
            st = st - 2;
          }
        }
      }
  
      // Driver code
      var n = 7;
      display(n);
        
      // This code is contributed by rdtank.
    </script>

Output : 
 

   1
  212
 32123
4321234
 32123
  212
   1

Time complexity: O(n*sp+n*st)
Auxiliary Space: O(1) 


Article Tags :