瀏覽代碼

🌲

master
Roderic Day 5 年之前
父節點
當前提交
1f0f9398c2
共有 1 個文件被更改,包括 24 次插入0 次删除
  1. +24
    -0
      y2019/p16.py

+ 24
- 0
y2019/p16.py 查看文件

@@ -0,0 +1,24 @@
import sys
from itertools import accumulate, cycle
from multiprocessing import Pool


def _next(ns, i):
g = cycle([n for n in [0, 1, 0, -1] for _ in range(i + 1)])
next(g) # throw away one
return abs(sum(a * b for a, b in zip(ns, g))) % 10


text = sys.stdin.read().strip()

ns = [int(n) for n in text]
with Pool() as pool:
for _ in range(100):
ns = pool.starmap(_next, [(ns, i) for i in range(len(ns))])
print(''.join(str(c) for c in ns[:8]))

offset = int(text[:7])
pending = [int(n) for n in (text * 10000)[offset:]][::-1]
for _ in range(100):
pending = [n % 10 for n in accumulate(pending)]
print(''.join(str(c) for c in pending[::-1][:8]))

Loading…
取消
儲存