pengantar
Tantangan ini mengharuskan Anda untuk mengatur nol trailing dari representasi biner bilangan bulat 010101…
, ini paling baik dijelaskan dengan contoh:
Dengan bilangan bulat 400
, langkah pertama adalah mengubahnya menjadi biner:
110010000
Seperti yang dapat kita lihat bit kelima adalah bit yang paling tidak signifikan 1
, jadi mulai dari sana kita ganti nol yang lebih rendah dengan 0101
:
110010101
Akhirnya kami mengonversi itu kembali ke desimal: 405
Tantangan
Diberikan pengembalian integer positif / output nilai hasil yang sesuai dari proses yang didefinisikan di atas.
Aturan
- Urutan ini hanya didefinisikan untuk bilangan bulat dengan setidaknya satu
1
bit, sehingga input akan selalu ≥ 1 - Anda dapat mengambil input sebagai string, daftar digit (desimal) sebagai gantinya
- Anda tidak harus menangani input yang tidak valid
Testcases
Berikut adalah beberapa testcases dengan langkah perantara (Anda tidak harus mencetak / mengembalikannya):
In -> … -> … -> Out
1 -> 1 -> 1 -> 1
2 -> 10 -> 10 -> 2
3 -> 11 -> 11 -> 3
4 -> 100 -> 101 -> 5
24 -> 11000 -> 11010 -> 26
29 -> 11101 -> 11101 -> 29
32 -> 100000 -> 101010 -> 42
192 -> 11000000 -> 11010101 -> 213
400 -> 110010000 -> 110010101 -> 405
298 -> 100101010 -> 100101010 -> 298
n
adalah kekuatan maksimal 2 yang membagi input, maka jawabannya sederhana(input) + ceil((2^n - 2)/3)