Impresión de patrón reductor interno

Dado un número N, imprime el siguiente patrón.

Ejemplos:

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

Producción :

4444444
4333334
4322234
4321234
4322234
4333334
4444444

Este artículo es una contribución de Vigneshwaran Kannan . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *