Related Articles

# 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 ``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

 ``

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.

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