1.9 KiB
1.9 KiB
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
5900f3881000cf542c50fe9b | Problem 28: Number spiral diagonals | 5 | 301930 | problem-28-number-spiral-diagonals |
--description--
Starting with the number 1 and moving to the right in a clockwise direction a 5 by 5 spiral is formed as follows:
21
22 23 24 25
20
7
8 9
1019 6
1
2 1118
5
4 3
1217
16 15 14 13
It can be verified that the sum of the numbers on the diagonals is 101.
What is the sum of the numbers on the diagonals in an n
by n
spiral formed in the same way?
--hints--
spiralDiagonals(101)
should return a number.
assert(typeof spiralDiagonals(101) === 'number');
spiralDiagonals(101)
should return 692101.
assert(spiralDiagonals(101) == 692101);
spiralDiagonals(303)
should return 18591725.
assert(spiralDiagonals(303) == 18591725);
spiralDiagonals(505)
should return 85986601.
assert(spiralDiagonals(505) == 85986601);
spiralDiagonals(1001)
should return 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;
};