소개 (무시 될 수 있음)
모든 양수를 규칙적인 순서 (1, 2, 3, ...)로 넣는 것은 약간 지루하지 않습니까? 그래서 여기 모든 양수의 순열 (순환)에 관한 일련의 도전이 있습니다. 이것이이 시리즈의 두 번째 과제입니다. 첫 번째 도전은 여기 에서 찾을 수 있습니다 .
이 과제에서 그레이 코드를 사용하여 자연수를 근절합니다. 그레이 코드 또는 "반사 된 이진 코드"는 두 개의 연속 값이 하나의 비트에서만 다른 방식으로 이진 인코딩입니다. 이 인코딩의 실제 적용은이를 로터리 엔코더 에 사용하는 것이므로 "Turn My Way"를 참조하십시오 .
이 인코딩은 어느 정도의 자유를 남깁니다. 예를 들어, 이진 1100 다음에는 다음과 같은 네 가지 가능한 코드가 있습니다. 1101, 1110, 1000 및 0100. 따라서 이진 인코딩에서 한 문자 만 다른 이전에 사용되지 않은 가장 작은 값으로 을 정의 . 이 순서는 A163252에 해당 합니다.
이것은 "순수한 시퀀스"문제이므로, 주어진 대한 a 을 입력 으로 출력 것이 좋습니다 . 여기서 은 A163252 입니다.( N )
직무
정수 입력 주어지면 을 정수 형식 ( 2 진 형식이 아닌 으로 출력 .
a ( n - 1 ) a ( n ) 은 이진수로 기록 될 때 과 이 단지 1 비트 만 다르 도록 시퀀스에서 일찍 발생하지 않는 최소 양의 정수로 정의됩니다 .
참고 : 여기서는 1 기반 색인 작성이 가정됩니다. 0 기반 인덱싱을 사용할 수 있으므로 등이 있습니다. 이것을 사용하기로 선택한 경우 답에 언급하십시오.
테스트 사례
Input | Output
--------------
1 | 1
5 | 4
20 | 18
50 | 48
123 | 121
1234 | 1333
3000 | 3030
9999 | 9997
규칙
- 입력 및 출력은 정수입니다 (프로그램은 1에서 32767까지의 입력 및 출력을 지원해야합니다).
- 유효하지 않은 입력 (0, 부동, 문자열, 음수 값 등)으로 인해 예기치 않은 출력, 오류 또는 (정의되지 않은) 동작이 발생할 수 있습니다. 에서 A163252 , 이 도전 0으로 정의되며,이 무시된다.
- 기본 I / O 규칙이 적용됩니다.
- 기본 허점 은 금지되어 있습니다.
- 이것은 code-golf 이므로 바이트 단위의 최단 답변이 이깁니다.
최종 메모
다음과 같은 PP & CG 관련 질문을 참조하십시오.