内缩图案印刷
给定一个数字 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