Inner reducing pattern printing

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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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.

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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);
    }
}

chevron_right


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#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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.*/

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?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     
?>

chevron_right



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.



My Personal Notes arrow_drop_up