정수을 감안할 때 , 당신은 필요가 반전 될 수 있다는 비트의 최소 수를 찾을 수있다 로를 설정하는 사각형 번호 . 가장 중요한 비트 이하 로만 비트를 반전시킬 수 있습니다 .N
예
- 2 2 0 이미 제곱 수 ( )이므로 예상 출력은 입니다.
- 11000 → 1100 1 25 = 5 2 1 는 1 비트 ( ( )) 를 반전하여 제곱 숫자로 바뀔 수 있으므로 예상 출력은 입니다.
- 23 20 18 30 10110 → 10 0 0 0 16 = 4 2 2 는 단일 비트를 뒤집어서 제곱 숫자로 바꿀 수 없지만 (가능한 결과는 , , 및 ) 2 비트를 으면됩니다 : ( )이므로 예상 출력은 입니다.
규칙
- 코드가 너무 느리거나 더 큰 테스트 사례에 대해 오류가 발생해도 괜찮지 만 1 분 이내에 이상을 지원해야합니다 .
- 이것은 코드 골프입니다 !
테스트 사례
Input | Output
----------+--------
4 | 0
22 | 2
24 | 1
30 | 3
94 | 4
831 | 5
832 | 1
1055 | 4
6495 | 6
9999 | 4
40063 | 6
247614 | 7 (smallest N for which the answer is 7)
1049310 | 7 (clear them all!)
7361278 | 8 (smallest N for which the answer is 8)
100048606 | 8 (a bigger "8")
또는 복사 / 붙여 넣기 형식으로 :
[4,22,24,30,94,831,832,1055,6495,9999,40063,247614,1049310,7361278,100048606]
100048606
TIO에서 실행되지 않습니다 . 문제입니까?