https://projecteuler.net/problem=28
Number spiral diagonals
Problem 28
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
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 a 1001 by 1001 spiral formed in the same way?
只看右半部分,1为坐标轴圆点(x=0),第i列的右下角数字是:(2i-1)^2+2i
这样结果就出来了:
<pre name="code" class="python">def spiralDiagonals(n):
if n <= 1:
return 1
result = 1
step = 2
#从x=1到x=(n-1)/2
for i in range(1,int((n-1)/2)+1):
result += 4 * ((2*i-1)**2+2*i)+6*step
step += 2
return result
print(spiralDiagonals(1001))
求解1001阶数螺旋的对角线之和
本文详细介绍了如何通过等差数列的性质解决数螺旋中对角线数字之和的问题,特别是针对1001阶数螺旋,通过解析每个圈的规律,得出计算公式,最终得到对角线数字之和。
173

被折叠的 条评论
为什么被折叠?



