From 1879caa1dd80cb11dd62403663917ad4bf7cc68e Mon Sep 17 00:00:00 2001 From: Charles Date: Sun, 11 Aug 2019 22:41:34 +0200 Subject: rename all file with 3 zero padding --- python/028-number_spiral_diagonals.py | 46 +++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 python/028-number_spiral_diagonals.py (limited to 'python/028-number_spiral_diagonals.py') diff --git a/python/028-number_spiral_diagonals.py b/python/028-number_spiral_diagonals.py new file mode 100644 index 0000000..ca657d5 --- /dev/null +++ b/python/028-number_spiral_diagonals.py @@ -0,0 +1,46 @@ +from itertools import count + +size = 1001 +center = (size-1) // 2 +grid = [[None for _ in range(size)] for _ in range(size)] + +i = 1 +x, y = center, center +for cycle_nb in count(): + grid[x][y] = i + y += 1 + i += 1 + + if grid[0][-1] != None: + break + + for _ in range(cycle_nb * 2 - 1): + grid[x][y] = i + x += 1 + i += 1 + + for _ in range(cycle_nb * 2): + grid[x][y] = i + y -= 1 + i += 1 + + for _ in range(cycle_nb * 2): + grid[x][y] = i + x -= 1 + i += 1 + + for _ in range(cycle_nb * 2): + grid[x][y] = i + y += 1 + i += 1 + + +diag_sum = 0 +for x, y in zip(range(size), range(size)): + diag_sum += grid[x][y] + +adiag_sum = 0 +for x, y in zip(reversed(range(size)), range(size)): + adiag_sum += grid[x][y] + +print(diag_sum + adiag_sum - 1) -- cgit