도전
이 문제를 해결하려면 주어진 숫자가 Cantor 세트에 있는지 확인해야합니다. 먼저 Cantor 세트를 정의하겠습니다.
먼저, 0과 1 사이의 숫자로 시작하십시오.이 범위 밖의 숫자는 Cantor 세트에 없습니다. 이제 숫자를 [0,1 / 3], [1 / 3,2 / 3], [2/3, 1]의 세 부분으로 나눕니다. 첫 번째 부분과 마지막 부분의 범위 안에 있지 않은 숫자는 Cantor 세트에 없습니다. 이제 [0,1 / 3] 및 [2/3, 1] 세그먼트에 대해이 프로세스를 반복하십시오. 그런 다음 남은 것을 반복합니다. 당신은 이것을 영원히 계속합니다. 결국, 남은 모든 숫자는 Cantor 세트에 있습니다. 처음 6 개의 반복에 대한 다이어그램은 다음과 같습니다.
입력
두 정수 x
와 y
.
0 < y < 2^15
0 <= x <= y
의 가장 큰 공통 분모 x
와는 y
하지 않는 한, 1 x == 0
.
산출
x/y
Cantor 세트에 들어있는 경우 진실 입니다. Cantor 세트에 없으면
거짓 x/y
입니다.
예
이제 Cantor 세트에있는 숫자의 예를 보겠습니다.
1/3 -> true
경계에 있으며 경계가 제거되지 않습니다.
1/4 -> true
1/4
세그먼트의 중간 1/3에 있지는 않지만 경계에 있지는 않습니다. 경로를 따라 가면 실제로 섹션의 첫 번째와 마지막 1/3 사이에 번갈아 나타나는 것을 알 수 있습니다.
1/13 -> true
1/13
첫 번째 섹션과 첫 번째 섹션과 마지막 섹션 사이를 번갈아 표시합니다.
1/5 -> false
1/5
위의 다이어그램에서 1/9와 2/9 사이의 세 번째 행의 첫 번째 빈 블록에 속합니다.
다른 테스트 사례 :
0/4 -> true
3/10 -> true
3/4 -> true
10/13 -> true
1/1 -> true
12/19 -> false
5/17 -> false
3/5 -> false
1/7 -> false
1/2 -> false
이 스 니펫으로 다른 숫자를 시도 할 수 있습니다.
목표
바이트 수가 가장 적은 사람이 이깁니다.
x == 0