tak0kadaの何でもノート

発声練習、生存確認用。

医学関連は 医学ノート

虫食い算をpythonで解いてみる

先輩のブログで虫食い算を見つけたので自分もやってみる。

解くのは

   SEND
+) MORE
-------
  MONEY

である。

ループ回すだけの簡単なプログラム

from itertools import permutations

ans=[]
for p in permutations(range(10), 8):
    if p[0] == 0 or p[4] == 0:
        continue
    if (p[0]*1000 + p[1] * 100 + p[2] * 10 + p[3] * 1) + (p[4] * 1000 + p[5] * 100 + p[6] * 10 + p[1] * 1) == (p[4] * 10000 + p[5] * 1000 + p[2] * 100 + p[1] * 10 + p[7] * 1):
        ans.append(p)

for i in ans:
    i = "".join(map(str, i))
    print(i[:4]+"+"+i[4:7]+i[1]+"="+i[4:6]+i[2]+i[1]+i[7])

2秒くらいで9567+1085=10652と求まる。