この挑戦は、プログラミング言語のクイズの強盗の部分を獲得したPPCGユーザーデニスへのオマージュです。
見てみるとデニスのPPCGのプロフィールページ我々はいくつかの非常に印象的なものを見ることができます:
現在、彼の評価は6万8000を超えており、全体で2 位になり、3位をほぼ3万回超えています。彼は最近、新しいモデレーターの選挙に勝ち、彼の名前の隣に輝く新しいダイヤモンドを得ました。しかし個人的には、デニスの最も興味深い部分は彼のPPCGユーザーID番号である12012です。
一見パリンドロームの12012
ように見えますが、逆にすると同じ数字になりますが、少しずれています。それは回文になることができ、我々は最初の位置を入れ替えた場合と、それが回文になることができ、我々は最後のスワップ場合とを。また、数字の先頭のゼロが書き込まれないという規則に従って、最初の結果と結果を交換するか、どちらが別の回文です。21012
1
2
12021
1
2
1
0
02112
2112
デニス数を、回文自体ではなく、任意の2桁の少なくとも1組の位置を交換することで回文にすることができる正の整数として定義しましょう。デニス番号の順序は、パリンドローム(必ずしも区別されない)を作成するために交換できる数字の個別のペアの数です。
だからの順序は12012
、その数字の3 3が異なる対である(12012
、、)回文を生成するために周りに交換することができます。たまたま最小の3デニス数です。12012
12012
12012
10
は最小のデニス数で、順序1を持ちます。これは、1
と0
を切り替えると、回文である01
aka 1
が得られるためです。
数字の虚数の先行ゼロは、切り替え可能な数字としてカウントされません。たとえば、回文を取得するために最初の2桁に変更8908
し08908
て交換すること80908
は無効です。8908
デニス番号ではありません。
デニス以外の番号の順序は0であると言えます。
チャレンジ
正の整数Nを取り込んで、N番目に小さいデニス数とその順序を、12012 3
またはなどの合理的な形式で出力するプログラムまたは関数を作成します(12012, 3)
。
たとえば12012
、774番目のデニス番号であるため774
、プログラムへの入力である場合、出力はのようになります12012 3
。(奇妙なことに、774は別のデニス番号です。)
バイト単位の最短コードが優先されます。
参照用の最初の20デニス番号とその順序は次のとおりです。
N Dennis Order
1 10 1
2 20 1
3 30 1
4 40 1
5 50 1
6 60 1
7 70 1
8 80 1
9 90 1
10 100 1
11 110 2
12 112 1
13 113 1
14 114 1
15 115 1
16 116 1
17 117 1
18 118 1
19 119 1
20 122 1