다음 프로세스를 고려하십시오.
음이 아닌 정수 N을 가져옵니다.
예 : N =
571
선행 0없이 바이너리로 표현하십시오. (제로 자체 만이 유일한 예외
0
입니다.)예
571
=1000111011
이진수로이 이진 표현에서 1과 0의 연속 실행을 분리하십시오.
예를 들어,
1000111011
→1
,000
,111
,0
,11
런을 가장 긴 것부터 가장 짧은 것까지 정렬합니다.
예를 들어
1
,000
,111
,0
,11
→000
,111
,11
,1
,0
교류와 각 실행에있는 모든 숫자를 덮어 쓰기
1
's와0
항상 함께 시작의1
의.예를 들어
000
,111
,11
,1
,0
→111
,000
,11
,0
,1
결과를 연결하여 새로운 이진수를 얻습니다.
예를 들어
111
,000
,11
,0
,1
→1110001101
=909
진수
이 프로세스에서 생성 된 값을 플로팅하면 매우 깔끔한 그래프가 나타납니다.
그리고 결과 시퀀스를 Temple Skyline 시퀀스 라고 부르는 이유는 분명 합니다 .
도전
음수가 아닌 정수 N을 사용하고 해당하는 Temple Skyline 시퀀스 번호를 인쇄하거나 반환하는 프로그램 또는 함수를 작성하십시오. 입력과 출력은 모두 10 진수 여야합니다.
예를 들어 입력이 571
출력 인 경우 909
.
바이트 단위의 가장 짧은 코드가 이깁니다.
참고로, N = 0에서 20까지의 시퀀스에있는 용어는 다음과 같습니다.
0 1
1 1
2 2
3 3
4 6
5 5
6 6
7 7
8 14
9 13
10 10
11 13
12 12
13 13
14 14
15 15
16 30
17 29
18 26
19 25
20 26
.BQ
대신 대신 사용할 수 있습니다 . 즉 앞과jQ2
사이의 공간을 잃을 수 있습니다 .8
2