Compute the Number Spiral Diagonals
- 时间:2020-10-11 15:48:46
- 分类:网络文摘
- 阅读:128 次
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 10 19 6 1 2 11 18 5 4 3 12 17 16 15 14 13It 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 a 1001 by 1001 spiral formed in the same way?
Sum of Number Spiral Diagonals
It is easy to observe that the sum of spiral diagonals are in groups of four: 1, (3, 5, 7, 9), (13, 17, 21, 25) … And the step is incremented by two and we know the last number is the top right corner and its value is N*N if N is the size of the spiral matrix (either row and column).
Thus, we can simulate the process by adding the four numbers and increment the step every four numbers.
1 2 3 4 5 6 7 8 9 10 11 12 | function computeSumOfSpiralDiagonals(n) { const last = n*n; let sum = 1, d = 2, k = 0; for (let i = 3; i <= last; i += d) { sum += i; k ++; if (k % 4 == 0) { d += 2; } } } console.log(computeSumOfSpiralDiagonals(1001)); |
function computeSumOfSpiralDiagonals(n) {
const last = n*n;
let sum = 1, d = 2, k = 0;
for (let i = 3; i <= last; i += d) {
sum += i;
k ++;
if (k % 4 == 0) {
d += 2;
}
}
}
console.log(computeSumOfSpiralDiagonals(1001));–EOF (The Ultimate Computing & Technology Blog) —
推荐阅读:How to Construct Binary Search Tree from Preorder Traversal? (C+ How to Compute the Number of Pawns-Captures for Rook in Chess? Build Your First Node.JS Unikernel with OPS The Intersection Algorithm of Two Arrays using Hash Maps in C++/ What Businesses Would Be Like if Web Hosting Didn’t Exist? How to Find the Dominant Index in Array (Largest Number At Least K Closest Points to Origin Algorithm by using Priority Queues in Total Number of Ways to Decode the Message via Dynamic Programmi The License Key Formatting Algorithm in C++ Integrating LinkedIn Long-Form Posts in Your Blogging Strategy
- 评论列表
-
- 添加评论