Skip to content
Related Articles

Related Articles

Improve Article

Inner reducing pattern printing

  • Difficulty Level : Medium
  • Last Updated : 27 Dec, 2018

Given a number N, print the following pattern.

Examples :

Input : 4
Output : 4444444
         4333334
         4322234
         4321234
         4322234
         4333334
         4444444
Explanation:
(1) Given value of n forms the outer-most
 rectangular box layer.
(2) Value of n reduces by 1 and forms an 
inner rectangular box layer.
(3) The step (2) is repeated until n 
reduces to 1.

Input : 3
Output : 33333
         32223
         32123
         32223
         33333

C++




// C++ Program to print rectangular
// inner reducing pattern
#include <bits/stdc++.h>
using namespace std;
  
#define max 100
  
// function to Print pattern
void print(int a[][max], int size) 
{
for (int i = 0; i < size; i++) {
    for (int j = 0; j < size; j++) {
    cout << a[i][j];
    }
    cout << endl;
}
}
  
// function to compute pattern
void innerPattern(int n) {
      
// Pattern Size
int size = 2 * n - 1;
int front = 0;
int back = size - 1;
int a[max][max];
while (n != 0) 
{
    for (int i = front; i <= back; i++) {
    for (int j = front; j <= back; j++) {
        if (i == front || i == back ||
            j == front || j == back)
        a[i][j] = n;
    }
    }
    ++front;
    --back;
    --n;
}
print(a, size);
}
  
// Driver code
int main()
{
    // Input
    int n = 4; 
      
    // function calling
    innerPattern(n);
      
return 0;
}
  
// This code is contributed by Anant Agarwal.

Java




// Java Program to print rectangular
// inner reducing pattern
public class Pattern {
      
    // function to compute pattern
    public static void innerPattern(int n)
    {   
        // Pattern Size
        int size = 2 * n - 1
        int front = 0;
        int back = size - 1;
        int a[][] = new int[size][size];
        while (n != 0) {
            for (int i = front; i <= back; i++) {
                for (int j = front; j <= back;
                                        j++) {
                    if (i == front || i == back ||
                         j == front || j == back)
                        a[i][j] = n;
                }
            }
            ++front;
            --back;
            --n;
        }
        print(a, size);
    }
  
    // function to Print pattern
    public static void print(int a[][], int size)
    {
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size; j++) {
                System.out.print(a[i][j]);
            }
            System.out.println();
        }
    }
  
    // Main Method
    public static void main(String[] args)
    {
        int n = 4; // Input
        innerPattern(n);
    }
}

Python3




# Python3 Program to print rectangular 
# inner reducing pattern 
MAX = 100
  
# function to Print pattern 
def prints(a, size): 
    for i in range(size): 
        for j in range(size):
            print(a[i][j], end = '')
        print()
  
# function to compute pattern 
def innerPattern(n): 
      
    # Pattern Size 
    size = 2 * n - 1
    front = 0
    back = size - 1
    a = [[0 for i in range(MAX)]  
            for i in range(MAX)]
    while (n != 0): 
        for i in range(front, back + 1):
            for j in range(front, back + 1):
                if (i == front or i == back or
                    j == front or j == back):
                    a[i][j] = n
        front += 1
        back -= 1
        n -= 1
    prints(a, size); 
  
# Driver code 
  
# Input 
n = 4
  
# function calling 
innerPattern(n)
  
# This code is contributed 
# by sahishelangia

C#




// C# Program to print rectangular
// inner reducing pattern
using System;
public class Pattern {
      
    // function to compute pattern
    public static void innerPattern(int n)
    
        // Pattern Size
        int size = 2 * n - 1; 
        int front = 0;
        int back = size - 1;
        int [ ,]a = new int[size,size];
        while (n != 0) {
            for (int i = front; i <= back; i++) {
                for (int j = front; j <= back;
                                        j++) {
                    if (i == front || i == back ||
                        j == front || j == back)
                        a[i,j] = n;
                }
            }
            ++front;
            --back;
            --n;
        }
        print(a, size);
    }
  
    // function to Print pattern
    public static void print(int [ ,]a , int size)
    {
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size; j++) {
                Console.Write(a[i,j]);
            }
            Console.WriteLine();
        }
    }
  
    // Main Method
    public static void Main()
    {
        int n = 4; // Input
        innerPattern(n);
    }
}
/*This code is contributed by vt_m.*/

PHP




<?php
// PHP implementation to print 
// rectangular inner reducing pattern
  
$max=100;
  
// function to Print pattern
function print1($a, $size
{
for ($i = 0; $i < $size; $i++) 
    {
    for ($j = 0; $j < $size; $j++) 
        {
            echo $a[$i][$j];
        }
    echo "\n";
    }
}
  
// function to compute pattern
function innerPattern($n
{
          
    // Pattern Size
    $size = 2 * $n - 1;
    $front = 0;
    $back = $size - 1;
    $a;
    while ($n != 0) 
    {
        for ($i = $front; $i <= $back
                                 $i++) 
        {
            for ($j = $front
                 $j <= $back; $j++)
            {
                if ($i == $front || 
                    $i == $back || 
                    $j == $front || 
                    $j == $back)
                      
                $a[$i][$j] = $n;
            }
        }
        ++$front;
        --$back;
        --$n;
    }
    print1($a, $size);
}
  
// Driver code
$n = 4; 
innerPattern($n);
  
// This code is contributed by mits     
?>


Output :
4444444
4333334
4322234
4321234
4322234
4333334
4444444

This article is contributed by Vigneshwaran Kannan. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

Attention reader! Don’t stop learning now. Participate in the Scholorship Test for First-Step-to-DSA Course for Class 9 to 12 students.




My Personal Notes arrow_drop_up
Recommended Articles
Page :