PY
py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from math import log
#make the n*n matrix
n = int(input())
tower = [[1 for i in range(n)] for i in range(n)]
# build the tower layer by layer by adding odd numbers: 1+3, 1+3+5, ...
k = 1
while k <= int(n/2):
for i in range(k,n-k):
for j in range(k,n-k):
tower[i][j]+=2*k+1
k+=1
# preserve the necessary space for every number
space = int(log((n+1)/2,10)+1)
for i in range(n):
for j in range(n):
tower[i][j] = " " *(space-int(log(tower[i][j],10))) + str(tower[i][j])
# print the tower
for i in tower:
Enter to Rename, Shift+Enter to Preview
OUTPUT
Run