1.9 KiB
1.9 KiB
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
5900f3881000cf542c50fe9b | Problema 28: soma dos números nas diagonais | 5 | 301930 | problem-28-number-spiral-diagonals |
--description--
Começando com o número 1 e movendo-se para a direita no sentido horário, uma espiral de 5x5 é formada:
21
22 23 24 25
20
7
8 9
1019 6
1
2 1118
5
4 3
1217
16 15 14 13
É possível verificar que a soma dos números nas diagonais é 101.
Qual é a soma dos números nas diagonais em uma espiral n
x n
formada da mesma forma?
--hints--
spiralDiagonals(101)
deve retornar um número.
assert(typeof spiralDiagonals(101) === 'number');
spiralDiagonals(101)
deve retornar 692101.
assert(spiralDiagonals(101) == 692101);
spiralDiagonals(303)
deve retornar 18591725.
assert(spiralDiagonals(303) == 18591725);
spiralDiagonals(505)
deve retornar 85986601.
assert(spiralDiagonals(505) == 85986601);
spiralDiagonals(1001)
deve retornar 669171001.
assert(spiralDiagonals(1001) == 669171001);
--seed--
--seed-contents--
function spiralDiagonals(n) {
return n;
}
spiralDiagonals(1001);
--solutions--
const spiralDiagonals = (n) => {
const Sn2 = (n) => {
return n*(n+1)*(2*n+1)/6;
};
const Sn = (n) => {
return n*(n+1)/2;
};
let sum = (Sn2(n-1) + Sn(n-1) + n-1) + (Math.floor(n/2) + Sn2(n));
return sum;
};