入力:
0〜9の範囲の数字で構成される正の整数n。
チャレンジ:
場合dは整数で最上位桁であり、数値のベースであると仮定し、D + 1。たとえば、整数が1256の場合はbase-7であると想定し、10110の場合はbase-2(バイナリ)であると想定し、159の場合は10進数であると想定します。
さて、あなたのいずれか、1まで、次の手順を実行します。到達ベース-10の整数、または一桁の整数を達する:2。
- 整数をbase-(d + 1)からbase-10に変換します
- この新しい整数のベースを検索(再び、塩基(D + 1)dは新しい数の最上位桁です)
- ステップ1に進みます。
例:
入力がn = 413574であると仮定します。最高桁のd = 7であるため、これは8進数(8進数)です。これを10進数に変換して137084を取得します。最高桁のd = 8であるため、これはbase-9です。これを10進数に変換して83911を取得します。最高桁は9なので、これは10進数であり、停止します。出力は83911です。
入力がn = 13552であると仮定します。最高桁はd = 5なので、これはbase-6です。これを10進数に変換して2156を取得します。最高桁d = 6であるため、これはbase-7です。これを10進数に変換して776を取得します。最高桁はd = 7なので、これはbase-8です。これを10進数に変換して510を取得します。最高桁はd = 5なので、これはbase-6です。これを10進数に変換して186を取得します。最高桁は8なので、これは9進数です。これを10進数に変換して159を取得します。最高桁は9なので、これは10進数であり、停止します。出力は159とする。
入力がn = 17であると仮定します。これは、私たちに与えるだろう15、そして11、そして3を、どの我々は出力それは一桁だから。
テストケース:
5
5
17
3
999
999
87654321 (base-9 -> 42374116 in decimal -> base-7 -> 90419978 in decimal)
9041998
41253 (5505 -> 1265 -> 488 -> 404 -> 104 -> 29)
29
ノート:
- I / O、抜け穴などに関する標準ルール。入力を文字列として取得できます。
- 説明が奨励されています
- 組み込みのベース変換コマンドを使用できます
- 言語の組み込みベース変換関数(存在する場合)を使用しないソリューションは、組み込み関数を使用する明白なアプローチよりもはるかに長くなる場合でも歓迎です。
どうやら、これはOEIS A091047です。