Z会三年生中学受験コース5月のてんさく問題を Python で解いてみた

妻と娘から次の質問をされた。

4けたの数について、それぞれの位の数字を大きいじゅんにならべた数から小さいじゅんにならべた数をひくという計算を行います。
1974 について、この計算を 100 回行った答えを書きなさい。

転職先の会社で Python を使うことになっているが、今まで座学ばかりで一行もコードを書いていなかったので、試しに妻と娘の前でライブコーディングをしてみた。

n = '1974'
for c in range(100):
  n = str(int("".join([x for x in reversed(sorted(n))])) - int("".join(sorted(n))))
  print "%s: %s" % (c, n)

reversed が破壊的だった所に少しハマった。

出力結果は下記の通り。

$ python test.py
0: 8262
1: 6354
2: 3087
3: 8352
4: 6174
5: 6174
// 以下略

って事で答えは 6174 でしたと。