28.py 321 B

123456789101112131415161718
  1. def main(by):
  2. diagonal = (by+1)*0.5
  3. print(spiral(diagonal))
  4. def spiral(d):
  5. if d == 1:
  6. return 1
  7. else:
  8. downright = 4*d**2-10*d+7
  9. downleft = 4*d**2-8*d+5
  10. upleft = 4*d**2-6*d+3
  11. upright = 4*d**2-4*d+1
  12. diagonalsum = downright + downleft + upleft + upright
  13. return diagonalsum + spiral(d-1)
  14. # Test
  15. main(1001)