
specialBinary
Thầy của Hải định nghĩa chuỗi nhị phân đặc biệt là chuỗi:
- Chỉ gồm những ký tự
'0'
và'1'
. - Nếu độ dài của chuỗi lớn hơn
1
thì không có ký tự'0'
phía trước. - Không có
2
ký giống nhau nằm cạnh nhau.
Thầy của Hải cho Hải một số nguyên dương n
và muốn Hải tìm được số nhỏ nhất lớn hơn hoặc bằng n
mà khi biểu diễn nhị phận của số đó ta được một chuỗi nhị phân đặc biệt. Hãy giúp Hải tìm và in ra số đó.
Ví dụ:
- Với
n = 4
, thìspecialBinary(n) = 5
.
Giải thích:5 = 101(2)
là chuỗi nhị phân đặc biệt. - Với
n = 10
, thìspecialBinary(n) = 10.
Đầu vào/Đầu ra:
- [Thời gian chạy] 0.1s với C++, 0.6s với Java, C#, 0.8s với Python, Js, Go
- [Đầu vào] Long s.
1 ≤ n ≤ 1018.
- [Đầu ra] Long
Số nhỏ nhất lớn hơn hoặc bằngn
mà khi biểu diễn nhị phận của số đó ta được một chuỗi nhị phân đặc biệt.
Post Comment