📜  内缩图案印刷

📅  最后修改于: 2022-05-13 01:57:59.446000             🧑  作者: Mango

内缩图案印刷

给定一个数字 N,打印以下模式。

例子 :

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



输出 :
4444444
4333334
4322234
4321234
4322234
4333334
4444444