uppdateras med ojämna mellanrum

4 mars 2009

Problem #28, Diagonal Sum of 1001x1001 spiral

Fem-minuters-lösning, hittade ett mönster som verkade stämma på pricken. Och det visade sig vara rätt. Länk till problemet här.
#!/usr/bin/env python
def spiral_sum(size):
a, d, sum, i = 2, 5, 0, 1
while i < (size**2) + 1:
d -= 1
if d == 0:
a, d = a + 2, 4
sum, i = sum + i, a + i
return sum

print "Spiral sum of 1001x1001 is", spiral_sum(1001)
För var fjärde iteration i spiralen ökar vi a med två och summerar de fyra hörnen och fortsätter tills vi summerat de båda diagonalerna.

Inga kommentarer:

Om mig

Sundsvall, Sweden