- 問題
Problem 28:Number spiral diagonals
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?
- 解答例
def spiralDiagonals(num): sum = 1 for i in range(2, num + 1): for j in range(0, 4): sum += ((2 * i - 1) * (2 * i - 1) - j * (2 * i - 2)) return sum num = 501 # 1001 = 2 * num - 1 print(spiralDiagonals(num))