先輩のブログで虫食い算を見つけたので自分もやってみる。
解くのは
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
と求まる。