【问题描述】
输入一个自然数N(1≤N≤9),要求输出如下的魔方阵,即边长为2*N-1,N在中心出现一次,其余位置上的数字从外向中心逐渐增大。
N=3时: 11111 12221 12321 12221 11111 N=4时: 1111111 1222221 1233321 1234321 1233321 1222221 1111111
【输入形式】
从标准输入读取一个整数N。
【输出形式】
向标准输出打印结果。输出符合要求的方阵,每个数字占一个字符宽度,在每一行末均输出一个回车符。
【输入样例】
3
【输出样例】
11111 12221 12321 12221 11111
【样例说明】
输入自然数3,则输出边长为5的方阵,3在方阵的中间出现一次,其余位置上的数字从外向中心逐渐增大。
n = int(input())
list = []
if n == 1:
print(1)
else:
for i in range(2*n-1):
list.append(1)
for m in list:
print(m, end="")
print()
for i in range(2, n+1):
for j in range(i, 2*n-i+1):
list[j-1] += 1
for m in list:
print(m, end="")
print()
for i in range(n, 1,-1):
for j in range(i, 2*n-i+1):
list[j-1] -= 1
for m in list:
print(m, end="")
print()
|