"맞춤 번호"
샘은 압축에 대한 "화려한"아이디어를 가지고 있습니다! 도울 수 있니?
다음은 Sam의 압축 체계에 대한 요약입니다. 먼저 2 ^ 16보다 엄격하게 작은 자연수의 밑이 10 인 표현을 취하여 앞에 0이없는 2 진 문자열로 작성하십시오.
1-> 1 9-> 1001 15-> 1111 13-> 1101 16-> 10000 17-> 10001 65535-> 111111111111111
이제 하나 이상의 0으로 구성된 그룹을 하나의 0으로 바꿉니다. 숫자가 더 적어 졌기 때문입니다. 바이너리 문자열은 이제 다음과 같습니다.
1-> 1-> 1 9-> 1001-> 101 15-> 1111-> 1111 13-> 1101-> 1101 16-> 10000-> 10 17-> 10001-> 101 65535-> 111111111111111-> 111111111111111
이제 이진 문자열을 다시 기본 10 표현으로 변환하고 허용되는 형식으로 출력합니다. 테스트 사례는 다음과 같습니다. 첫 번째 정수는 입력을 나타내고 마지막 정수는 출력을 나타냅니다. 일부 숫자는 변경되지 않으므로 "적합"이라고 할 수 있습니다.
1-> 1-> 1-> 1 9-> 1001-> 101-> 5 15-> 1111-> 1111-> 15 13-> 1101-> 1101-> 13 16-> 10000-> 10-> 2 17-> 10001-> 101-> 5 65535-> 1111111111111111-> 1111111111111111-> 65535 65000-> 1111110111101000-> 11111101111010-> 16250
어떤 언어라도 사용할 수 있지만 Sam은 표준 허점을 싫어합니다. 이것은 코드 골프이므로 "압축 된"숫자를위한 공간을 만들기 위해 코드가 가능한 짧을 수 있습니다.
참고 : 이것은 허용되는 압축 체계가 아닙니다. 이것을 사용하면 즉시 해고됩니다.
인용 필요 : 나는이 개념에 대해 인정하지 않습니다. 이 @Conor O 'Brien의 블로그에서 온다 여기 에 맞는 숫자의 OEIS를 참조하십시오. https://oeis.org/A090078
10000합니까?