Array#permutationを用いて、下の覆面算を解いてみる。
SEND
+MORE
-----
MONEY
+MORE
-----
MONEY
(0..9).to_a.permutation(8) do |s, e, n, d, m, o, r, y|
next if s == 0 or m == 0
send = s*1000 + e*100 + n*10 + d
more = m*1000 + o*100 + r*10 + e
money = m*10000 + o*1000 + n*100 + e*10 + y
if send+more == money then
print "#{send} + #{more} = #{money}"
end
end
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。