# Generar matriz mat = [ ] for f in range(n): mat.append([0]*n) # Relleno en espiral contador = 1 for cuadro in range(n//2+1): # Fila superior del recuadro for c in range(cuadro,n-cuadro): mat[cuadro][c] = contador contador = contador + 1 # Columna derecha del recuadro for f in range(cuadro+1,n-cuadro): mat[f][n-1-cuadro] = contador contador = contador + 1 # Fila inferior del recuadro for c in range(n-2-cuadro,cuadro-1,-1): mat[n-1-cuadro][c] = contador contador = contador + 1 # Columna izquierda del recuadro for f in range(n-2-cuadro,cuadro,-1): mat[f][cuadro] = contador contador = contador + 1 # Imprimir matriz for f in range(n): for c in range(n): print("%3d" %mat[f][c], end="") print()