Open In App

Program to print number pattern

Improve
Improve
Like Article
Like
Save
Share
Report

We have to print a pattern where in middle column contains only 1, right side columns contain constant digit which is greater than 1 and left side columns contains constant digit which is greater than 1. Every row should look like a Palindrome.

Examples : 

Input : 3
Output :
    1
 2  1  2
    1

Input : 5
Output :
     1
  2  1  2
3 2  1  2 3
  2  1  2
     1

Below is the implementation to print the following pattern :

C++




// CPP program to print pattern
#include <bits/stdc++.h>
using namespace std;
  
void display()
{
      
    int n = 5;
    int space = n / 2, num = 1;
       
    // Outer for loop for 
    // number of rows
    for (int i = 1; i <= n; i++)
    {
        // Inner for loop for 
        // printing space
        for (int j = 1; j <= space; j++)            
            cout<<" ";
           
        // Logic for printing 
        // the pattern for everyline
        int count = num / 2 + 1;
          
        for (int k = 1; k <= num; k++)
        {
            cout<<count;
              
            // Value of count decrements
            // in every cycle
            if (k <= num /2 )
                count--;
  
            // Value of count will
            // increment in every cycle
            else
                count++;
        }
  
        cout<<"\n";
  
        // Before reaching half Space
        // is decreased by 1 and num
        // is increased by 2
        if (i <= n / 2)
        {
            space = space - 1;
            num = num + 2;
        }
  
        // After reaching to half
        // space is increased by 1
        // and num is decreased by 2
        else
        {
            space = space + 1;
            num = num - 2;
        }
    }
}
  
// Driver Code
int main()
{
    display();
    return 0;
}
  
// This code is contributed by Nikita tiwari.


Java




// Java program to print above pattern
import java.util.Scanner;
class Pattern
{
    void display()
    {
        int n = 5;
        int space = n / 2, num = 1;
          
        // Outer for loop for 
        // number of rows
        for (int i = 1; i <= n; i++)
        {
            // Inner for loop 
            // for printing space
            for (int j = 1; j <= space; j++)            
                System.out.print(" ");
              
            // Logic for printing 
            // the pattern for everyline
            int count = num / 2 + 1;
            for (int k = 1; k <= num; k++)
            {
                System.out.print(count);
                // Value of count decrements 
                // in every cycle 
                if (k <= num /2 )
                    count--;
  
                // Value of count will increment 
                // in every cycle
                else
                    count++;
            }
  
            System.out.println();
  
            // Before reaching half Space is decreased
            // by 1 and num is increased by 2
            if (i <= n / 2)
            {
                space = space - 1;
                num = num + 2;
            }
  
            // After reaching to half space is increased
            // by 1 and num is decreased by 2
            else
            {
                space = space + 1;
                num = num - 2;
            }
        }
    }
  
    // Driver Code
    public static void main(String[] args)
    {
        Pattern p = new Pattern();
        p.display();
    }
}


Python3




# Python 3 program to 
# print above pattern
  
def display() :
    n = 5
    space = n // 2
    num = 1
      
    # Outer for loop for 
    # number of rows
    for i in range(1, n+1) :
          
        # Inner for loop for  
        # printing space
        for j in range(1, space+1) :
            print(" ", end = "") 
              
        # Logic for printing the
        # pattern for everyline
        count = num // 2 + 1
          
        for k in range(1, num+1) :
            print(count, end = "")
              
            # Value of count decrements
            # in every cycle
            if (k <= num // 2 ) :
                count = count -1
  
            # Value of count will 
            # increment in every cycle
            else :
                count = count + 1
        print()
  
        # Before reaching half Space
        # is decreased by 1 and num
        # is increased by 2
        if (i <= n // 2) :
            space = space - 1
            num = num + 2
          
        # After reaching to half 
        # space is increased by 1
        # and num is decreased by 2
        else :
            space = space + 1
            num = num - 2
              
# Driver Code
display()
  
#This code is contributed by Nikita Tiwari.


C#




// C# program to print above pattern
using System;
class Pattern
{
    void display()
    {
        int n = 5;
        int space = n / 2, num = 1;
          
        // Outer for loop for
        // number of rows
        for (int i = 1; i <= n; i++)
        {
            // Inner for loop
            // for printing space
            for (int j = 1; j <= space; j++)        
                Console.Write(" ");
              
            // Logic for printing
            // the pattern for everyline
            int count = num / 2 + 1;
            for (int k = 1; k <= num; k++)
            {
                Console.Write(count);
                // Value of count decrements
                // in every cycle
                if (k <= num /2 )
                    count--;
  
                // Value of count will increment
                // in every cycle
                else
                    count++;
            }
  
            Console.WriteLine();
  
            // Before reaching half Space is decreased
            // by 1 and num is increased by 2
            if (i <= n / 2)
            {
                space = space - 1;
                num = num + 2;
            }
  
            // After reaching to half space is increased
            // by 1 and num is decreased by 2
            else
            {
                space = space + 1;
                num = num - 2;
            }
        }
    }
  
    // Driver Code
    public static void Main()
    {
        Pattern p = new Pattern();
        p.display();
    }
}
// This code is contributed by vt_m.


PHP




<?php
// php program to print 
// above pattern
  
    function display($n)
    {
        $space = $n / 2;
        $num = 1;
          
        // Outer for loop for 
        // number of rows
        for ($i = 1; $i <= $n; $i++)
        {
            // Inner for loop 
            // for printing space
            for ($j = 1; $j <= $space; $j++)     
                echo " ";
              
            // Logic for printing 
            // the pattern for everyline
            $count = $num / 2 + 1;
            for ($k = 1; $k <= $num; $k++)
            {
                echo floor($count);
                // Value of count decrements 
                // in every cycle 
                if ($k <= $num /2 )
                    $count--;
  
                // Value of count will increment 
                // in every cycle
                else
                    $count++;
            }
  
            echo "\n";
  
            // Before reaching half Space
            // is decreased by 1 and
            // num is increased by 2
            if ($i <= $n / 2)
            {
                $space = $space - 1;
                $num = $num + 2;
            }
  
            // After reaching to half 
            // space is increased by 1
            // and num is decreased by 2
            else
            {
                $space = $space + 1;
                $num = $num - 2;
            }
        }
    }
  
// Driver Code
$n = 5;
display($n);
  
// This code is contributed by mits 
?>


Javascript




<script>
  
 // JavaScript program to print pattern
  
      function display() {
        var n = 5;
        var space = parseInt(n / 2),
          num = 1;
  
        // Outer for loop for
        // number of rows
          
        for (var i = 1; i <= n; i++) {
          // Inner for loop for
          // printing space
          for (var j = 1; j <= space; j++) 
          document.write("  ");
  
          // Logic for printing
          // the pattern for everyline
          var count = parseInt(num / 2 + 1);
  
          for (var k = 1; k <= num; k++) {
            document.write(count);
  
            // Value of count decrements
            // in every cycle
            if (k <= num / 2) count--;
              
            // Value of count will
            // increment in every cycle
            else count++;
          }
  
          document.write("<br>");
  
          // Before reaching half Space
          // is decreased by 1 and num
          // is increased by 2
          if (i <= n / 2) {
            space = space - 1;
            num = num + 2;
          }
  
          // After reaching to half
          // space is increased by 1
          // and num is decreased by 2
          else {
            space = space + 1;
            num = num - 2;
          }
        }
      }
  
      // Driver Code
        
      display();
        
</script>


Output : 

  1
 212
32123
 212
  1

Time Complexity: O(n2), where n represents the given input.
Auxiliary Space: O(1), no extra space is required, so it is a constant.



Last Updated : 17 Feb, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads