Dado um número de entrada positivo n
, construa uma espiral de números de 1
para n^2
, com 1
no canto superior esquerdo, espiralando para dentro no sentido horário. Pegue a soma das diagonais (se n
for ímpar, o número do meio n^2
é contado duas vezes) e produza esse número.
Exemplo para n = 1
:
1
(1) + (1) = 2
Exemplo para n = 2
:
1 2
4 3
(1+3) + (4+2) = 4 + 6 = 10
Exemplo 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
Exemplo 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
Regras e esclarecimentos adicionais
- Este é o OEIS A059924 e existem algumas soluções em formato fechado nessa página.
- Pode-se presumir que a entrada e a saída se encaixam no tipo inteiro nativo do seu idioma.
- A entrada e saída podem ser fornecidas em qualquer formato conveniente .
- Você pode optar pelo índice 0 ou 1, como eu estou aqui nos meus exemplos, para sua apresentação. Por favor, indique o que você está fazendo.
- Um programa completo ou uma função são aceitáveis. Se uma função, você pode retornar a saída em vez de imprimi-la.
- Se possível, inclua um link para um ambiente de teste on-line para que outras pessoas possam experimentar seu código!
- As brechas padrão são proibidas.
- Isso é código-golfe, portanto todas as regras usuais de golfe se aplicam e o código mais curto (em bytes) vence.
+3-3*(-1)^n
não é realmente o mesmo que6
, embora a diferença seja perdida na divisão inteira.