Skip to content
Related Articles

Related Articles

Program to print number pattern
  • Difficulty Level : Expert
  • Last Updated : 07 Apr, 2021

We have to print a pattern where in middle column contains only 1, right side columns contains 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 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";
 
        // Befor 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();
 
            // Befor 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()
 
        # Befor 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();
 
            // Befor 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";
 
            // Befor 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>");
 
          // Befor 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

 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up
Recommended Articles
Page :