浏览代码

🎩

master
Roderic Day 2 年前
父节点
当前提交
716fdae815
共有 1 个文件被更改,包括 29 次插入0 次删除
  1. +29
    -0
      y2022/p25.py

+ 29
- 0
y2022/p25.py 查看文件

@@ -0,0 +1,29 @@
def decode(string, swap={'1': 1, '=': -2, '-': -1, '0': 0, '2': 2}):
return sum(5 ** i * swap[c] for i, c in enumerate(string[::-1]))


def base5(n):
ns = []
while n:
ns.append(n % 5)
n //= 5
return ns[::-1]


def encode(n, swap={1: '1', -2: '=', -1: '-', 0: '0', 2: '2'}):
ms = []
carry = 0
for n in base5(n)[::-1]:
n += carry
if n > 2:
carry, value = 1, n % 3 - 2
else:
carry, value = 0, n
ms.append(swap[value])
if carry:
ms.append(swap[carry])
return ''.join(ms[::-1])


n = sum(map(decode, open(0).read().splitlines()))
print(encode(n))

正在加载...
取消
保存