Ejercicio de programación para Odd Magic Squares en Java

No está claro a quién se le ocurrió un cuadrado mágico. Hay una historia sobre una gran inundación en China hace mucho tiempo. La gente estaba preocupada de que fueran arrastrados e intentaron apaciguar al dios del río haciendo sacrificios. Nada parecía funcionar hasta que un niño notó que una tortuga lucía un cuadrado mágico en su espalda que seguía dando vueltas al sacrificio. La plaza le dijo a la gente cuán grande debía ser su sacrificio para salvarse. Desde entonces, los cuadrados mágicos han sido el colmo de la moda para cualquier tortuga exigente.

En caso de que nunca haya encontrado uno antes, un cuadrado mágico es una disposición de números secuenciales en un cuadrado para que las filas, columnas y diagonales se sumen al mismo número. Por ejemplo, un cuadrado mágico de 3x3 es:

Este ejercicio de programación tiene que ver con la creación de cuadrados mágicos de tamaño impar (es decir, el tamaño del cuadrado solo puede ser un número impar, 3x3, 5x5, 7x7, 9x9, etc.). El truco para hacer un cuadrado así es colocar el número 1 en la primera fila y en la columna central. Para encontrar dónde colocar el siguiente número, muévase diagonalmente hacia arriba a la derecha (es decir, una fila hacia arriba, una columna de ancho). Si tal movimiento significa que se cae del cuadrado, envuélvase a la fila o columna en el lado opuesto. Finalmente, si el movimiento te lleva a un cuadrado que ya está lleno, regresa al cuadrado original y muévete hacia abajo en uno. Repita el proceso hasta completar todos los cuadrados.

instagram viewer

Ahora el movimiento diagonal hacia arriba da como resultado un cuadrado que ya está lleno, así que volvemos a donde venimos y desplegamos una fila: