Datalore

プログラム例と解説

2012年国内予選 問題B 繰り返す10進数

  1. 自然数を桁の列に変換する
  2. 桁の列を降順にソートした列と昇順にソートした列を作る
  3. それぞれの列を自然数に変換し、差を求める

を循環するまで繰り返します。

この問題では10進法に限定なので、桁の列を文字列で実装できます。たいていの言語の標準ライブラリに含まれる数値文字列変換の機能を使えば簡単に実装できます(プログラム1)。

何進法でも対応できる汎用性を目指すと、桁の列を整数の列で実装する必要があります。この場合、両方向の変換を自前で実装する必要がありますが、たいした手間ではありません(プログラム2プログラム3)。


戻る