高校の入試問題(4をかけるとひっくり返る数)を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
以上になります。またお会いしましょう