高校の入試問題(4をかけるとひっくり返る数)をPythonで解いてみた

Pythonロゴ

面白そうな問題だったので解こうとしたのですが、ものの数秒でギブアップしてしまいました。

4をかけるとひっくり返る4桁の数

紙と鉛筆では無理でしたが、ちょうど機械学習で前処理中だったので、Pythonで解いてみる事にました。

問題が、ABCDの4桁の数値ということなので1000〜9999でループさせてます。

for i in range(1000, 10000):
    reverse_order = list(reversed(str(i)))
    answer = int(''.join(reverse_order))
    if i * 4 == answer:
        print(i, answer)

Pythonなので文字列をひっくり返すメソッドか関数があるかなって思ってましたが、無さそうという感じだったので、

4桁の数値を総当りで、

  • 数値を文字列に変換して
  • 反転の配列を取得して
  • その配列をブランクで結合して
  • それを数値に戻す

これでひっくり返した数値を取得しました。

5分位でコードを書いて答えを出すことが出来ましたが、制限時間内に紙と鉛筆だけでは私には到底無理な話しです。これが中学生が解く問題とは・・・

ちなみに5桁では

range(10000, 100000)と変更して実行してみたら以下が出ました。

21978 87912

以上になります。またお会いしましょう

鹿児島県の出水市という所に住んでいまして、インターネット周辺で色々活動して行きたいと思ってるところです。 Webサイト作ったり、サーバ設定したり、プログラムしたりしている、釣りと木工好きなMacユーザです。 今はデータサイエンスに興味を持って競馬AI予想を頑張ってます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください