이 과제는 The Programming Language Quiz 의 강도를 얻은 PPCG 사용자 Dennis 에게 경의를 표합니다 .
보면 데니스 'PPCG 프로필 페이지 것은 우리는 꽤 인상적인 물건을 볼 수 있습니다 :
그는 현재 6 만 8 천 명 이상의 명성을 가지고 있으며 전체적으로 2 위를 차지하며 거의 3 만 명을 넘어 섰습니다. 그는 최근 에 새로운 중재자를위한 우리의 선거에서 승리했고 그의 이름 옆에 반짝이는 새로운 다이아몬드를 얻었 습니다. 그러나 개인적으로 Dennis의 가장 흥미로운 부분은 PPCG 사용자 ID 번호 인 12012라고 생각합니다.
언뜻보기에는 12012
거의 회문 처럼 보이지만 , 반대로 뒤집어도 같은 숫자이지만 약간은 다릅니다. 21012
첫 번째 1
와 의 위치를 바꾸면 회문이 될 수 있고 2
, 12021
마지막 1
과를 바꾸면 회문이 될 수 있습니다 2
. 또한, 숫자 앞에 0이 기록되지 대회, 첫 스와핑 다음 1
과 0
결과 02112
또는 오히려 2112
다른 회문 인을.
Dennis 숫자 를 회문 자체는 아니지만 양수의 정수로 정의하고 두 자리 중 적어도 한 쌍의 위치를 바꾸어 회문으로 만들 수 있습니다. 데니스 수 의 순서 는 서로 구별되는 숫자 쌍의 수로, 반드시 별개의 회문을 만들기 위해 바꿀 수 있습니다.
따라서 순서가 12012
그 자리 3/3 보낸 구별 쌍 인 ( 12012
, , )을 생성 회문 주위 교환 될 수있다. 가장 작은 차수 3 Dennis 번호가됩니다.12012
12012
12012
10
최소 데니스 번호이고 주위 스위칭 때문에 순서 1을 보유 1
하고하기 0
범 01
일명 1
회문된다.
숫자의 가상 선행 0은 전환 가능한 숫자로 계산되지 않습니다. 예를 들어, 변화 8908
로 08908
하고, 회문을 얻기 위해 처음 2 자리 숫자를 교환하는 것은 80908
올바르지 않습니다. 8908
데니스 번호가 아닙니다.
데니스가 아닌 숫자는 순서가 0이라고 할 수 있습니다.
도전
제 N 최소 데니스 번호를 양의 정수 N과 인쇄물에 걸리거나 반환하는 함수 작성 프로그램이나 그 순서에 따라 같은 어떤 적당한 형식 12012 3
또는 (12012, 3)
.
예를 들어, 12012
774 번째 Dennis 숫자이므로 774
프로그램에 입력하면 출력은 다음과 같아야 12012 3
합니다. 흥미롭게도 774는 또 다른 데니스 번호입니다.
바이트 단위의 가장 짧은 코드가 이깁니다.
다음은 첫 20 개의 Dennis 번호와 참조 순서입니다.
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