15. Cuadrado mágico

Crea una función que determine si una matriz cuadrada es un "cuadrado mágico". Un cuadrado mágico es una matriz donde la suma de los números en cada fila, cada columna y ambas diagonales principales es la misma.

La función debe aceptar una matriz (lista de listas de enteros) como parámetro y devolver True si es un cuadrado mágico, y False en caso contrario.

def es_cuadrado_magico(matriz: list[list[int]]) -> bool:
    # Tu código aquí
    pass

cuadrado_magico_ejemplo_1 = [
    [2, 7, 6],
    [9, 5, 1],
    [4, 3, 8]
]
es_cuadrado_magico(cuadrado_magico_ejemplo_1)
# True (la suma es 15)

cuadrado_no_magico_ejemplo = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]
es_cuadrado_magico(cuadrado_no_magico_ejemplo)
# False

Ratoncito

Implementa la lógica para verificar filas, columnas y las dos diagonales principales. Asume que la matriz siempre será cuadrada y contendrá solo números enteros.

Dragón

Añade validación para asegurar que la entrada es una matriz cuadrada y maneja el caso de matrices vacías o de tamaño 1x1. También, podrías devolver la "suma mágica" si es un cuadrado mágico, o un valor especial (como None) si no lo es.

Este trabajo está bajo una licencia Attribution-NonCommercial-NoDerivatives 4.0 International.

¿Me invitas a un café?

Visitantes en tiempo real

Estás solo: 🐱