Loading Now

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' '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ằ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.

Post Comment

Contact