Saturday, September 21, 2024
Google search engine
HomeData Modelling & AIProgram to print number pattern

Program to print number pattern

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.

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

RELATED ARTICLES

Most Popular

Recent Comments