1.9 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			1.9 KiB
		
	
	
	
	
	
	
	
id, title, challengeType, forumTopicId, dashedName
| 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;
};