Date:
2008-04-02
四角い頭を丸くする算数の問題をPythonで解いてみる¶
今日、電車で見かけた算数の問題。
この問題をPythonでプログラムを書いて解いてしまったんだけど、落ち着いて考えれば暗算で解けそう。というか後から考えてみたら暗算で解けた。あああ、もったいないことをした。
ということで以下コード。
In [1]: def check(n):
...: sn = str(n)
...: for i,s in enumerate(sn):
...: if sn[-(i+1)] != s:
...: return False
...: return True
In [2]: for n in range(999,0,-1):
...: if check(n*5):
...: print n, n*5
...: break
...:
119 595
答えは119らしい。5倍した回文数は595。実はもっと大きな値になると思っていた。
今度は証明っぽく解いてみる。長いこと証明書いてないので書き方の定石は忘れちゃった。
とけた。ポイントが分かれば簡単やね。
書き写し間違ってるかもしれないけど問い2、問い3。また電車の中で考えよう...
# 回文数で検索するとけっこうヒットする