Dado un número de entrada positivo n
, construya una espiral de números desde 1
hasta n^2
, con 1
en la parte superior izquierda, girando hacia adentro en sentido horario. Tome la suma de las diagonales (si n
es impar, el número del medio n^2
se cuenta dos veces) y escriba ese número.
Ejemplo para n = 1
:
1
(1) + (1) = 2
Ejemplo para n = 2
:
1 2
4 3
(1+3) + (4+2) = 4 + 6 = 10
Ejemplo para n = 4
:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
(1+13+15+7) + (10+16+14+4) = 36 + 44 = 80
Ejemplo de n = 5
:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
(1+17+25+21+9) + (13+23+25+19+5) = 73 + 85 = 158
Más reglas y aclaraciones
- Este es OEIS A059924 y hay algunas soluciones de forma cerrada en esa página.
- Se puede suponer que la entrada y la salida encajan en el tipo entero nativo de su idioma.
- La entrada y la salida se pueden dar en cualquier formato conveniente .
- Puede optar por 0-index o 1-index, como estoy aquí en mis ejemplos, para su envío. Por favor, indique lo que está haciendo.
- Un programa completo o una función son aceptables. Si es una función, puede devolver el resultado en lugar de imprimirlo.
- Si es posible, incluya un enlace a un entorno de prueba en línea para que otras personas puedan probar su código.
- Las lagunas estándar están prohibidas.
- Este es el código de golf, por lo que se aplican todas las reglas habituales de golf, y gana el código más corto (en bytes).
+3-3*(-1)^n
no es realmente lo mismo6
, aunque la diferencia se pierde en la división de enteros.