Biorąc pod uwagę liczbę całkowitą , musisz znaleźć minimalną liczbę bitów, którą należy odwrócić w aby przekształcić ją w liczbę kwadratową . Dozwolone jest tylko odwracanie bitów poniżej najbardziej znaczącego .
Przykłady
- już jest liczbą kwadratową ( ), więc oczekiwany wynik to . 0
- można zamienić na liczbę kwadratową, odwracając 1 bit: ( ), więc oczekiwany wynik to . 25 = 5 2 1
- 23 20 18 30 10110 → 10 0 0 0 16 = 4 2 2 nie można zamienić na liczbę kwadratową poprzez odwrócenie pojedynczego bitu (możliwe wyniki to , , i ), ale można tego dokonać poprzez odwrócenie 2 bitów: ( ), więc oczekiwany wynik to .
Zasady
- W porządku, jeśli Twój kod jest zbyt wolny lub generuje błąd dla większych przypadków testowych, ale powinien obsługiwać co najmniej w mniej niż 1 minutę.
- To jest golf golfowy !
Przypadki testowe
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")
Lub w przyjaznym formacie kopiuj / wklej:
[4,22,24,30,94,831,832,1055,6495,9999,40063,247614,1049310,7361278,100048606]
100048606
w TIO, czy to problem?