Date: 2008-04-02
Tags: python

四角い頭を丸くする算数の問題を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。また電車の中で考えよう...

# 回文数で検索するとけっこうヒットする

../../_images/20080402_boueishou.jpg