이것은 HP CodeWars의 최근 경쟁 의 문제 13-비 반복 바이너리 입니다 .
임의의 십진수를 봅시다.
727429805944311
이진 표현을 살펴보십시오.
10100101011001011111110011001011101010110111110111
이제 이진 표현을 숫자 0
와 1
번갈아가는 하위 시퀀스로 나눕니다 .
1010 010101 10 0101 1 1 1 1 1 10 01 10 0101 1 1010101 101 1 1 1 101 1 1
각 하위 시퀀스를 다시 십진수로 변환합니다.
10 21 2 5 1 1 1 1 1 2 1 2 5 1 85 5 1 1 1 5 1 1
작업
단일 양의 정수를 입력으로 사용하여 위의 프로세스에서 얻은 양의 정수 시퀀스를 출력하십시오.
세부
- 입력 및 출력은 10 진수 또는 단항이어야합니다.
- 출력의 숫자는 사람이 읽을 수있는 현명한 방식으로 분리되어야하며 십진수 또는 단항이어야합니다. 공백에는 제한이 없습니다. 유효 출력 스타일 :
[1,2,3]
,1 2 3
,1\n2\n3
어디서\n
등 문자 뉴 라인이다
테스트 사례
Input | Output
0 | 0
1 | 1
2 | 2
3 | 1 1
4 | 2 0
5 | 5
6 | 1 2
7 | 1 1 1
8 | 2 0 0
9 | 2 1
10 | 10
50 | 1 2 2
100 | 1 2 2 0
1000 | 1 1 1 1 10 0 0
10000 | 2 1 1 2 0 2 0 0 0
12914 | 1 2 2 1 1 2 2
371017 | 5 42 10 2 1
추가 사항 : 출력의 모든 숫자는 (2^k-1)/3
또는 형식이어야합니다 2*(2^k-1)/3
. 즉, 0 1 2 5 10 21, 42, 85, 170, ...
,이다 A000975 OEIS한다.
|tac
내 대답에 남아있을 것입니다 :)