Open In App

Inner reducing pattern printing

Last Updated : 02 Mar, 2023
Comments
Improve
Suggest changes
Like Article
Like
Report

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#
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(string[] args)
  {
    int n = 4; // Input
    InnerPattern(n);
  }
}
JavaScript
const MAX = 100;

// function to Print pattern 
function prints(a, size) {
  for (let i = 0; i < size; i++) {
    let row = '';
    for (let j = 0; j < size; j++) {
      row += a[i][j];
    }
    console.log(row);
  }
}

// function to compute pattern 
function innerPattern(n) {
  // Pattern Size 
  const size = 2 * n - 1;
  let front = 0;
  let back = size - 1;
  let a = new Array(MAX).fill(0).map(() => new Array(MAX).fill(0));
  while (n !== 0) {
    for (let i = front; i <= back; i++) {
      for (let j = front; j <= back; j++) {
        if (i === front || i === back || j === front || j === back) {
          a[i][j] = n;
        }
      }
    }
    front += 1;
    back -= 1;
    n -= 1;
  }
  prints(a, size);
}

// Driver code 

// Input 
const n = 4;

// function calling 
innerPattern(n);

Output :

4444444
4333334
4322234
4321234
4322234
4333334
4444444


Next Article

Similar Reads