Mục tiêu
Cho một số nguyên không âm, tạo một hàm trả về vị trí bắt đầu của số 1 liên tiếp lớn nhất trong giá trị nhị phân của số nguyên đó.
Khi được cung cấp một đầu vào 0
, trả lại 0
.
Nếu số có nhiều vệt có độ dài bằng nhau, bạn phải trả về vị trí của vệt cuối cùng.
Đầu vào
Một số nguyên lớn hơn hoặc bằng 0.
Đầu ra
Một số nguyên được tính như dưới đây.
Quy tắc
- Đây là mã golf, vì vậy mã ngắn nhất tính theo byte trong mỗi ngôn ngữ sẽ thắng.
- Sơ hở tiêu chuẩn bị cấm.
Ví dụ và trường hợp thử nghiệm
ví dụ 1
- Hàm của bạn được truyền số nguyên 142
- 142 bằng 10001110 trong nhị phân
- Chuỗi dài nhất là "111" (một chuỗi ba)
- Chuỗi bắt đầu ở vị trí 2 ^ 1
- Hàm của bạn trả về 1 là kết quả
Ví dụ 2
- Hàm của bạn được truyền số nguyên 48
- 48 bằng 110000 trong nhị phân
- Chuỗi dài nhất là "11" (một vệt hai)
- Chuỗi bắt đầu ở vị trí 2 ^ 4
- Kết quả là hàm của bạn trả về 4
Ví dụ 3
- Hàm của bạn được truyền số nguyên 750
- 750 bằng 1011101110 ở dạng nhị phân
- Chuỗi dài nhất là "111" (một chuỗi ba)
- Vì có hai vệt có độ dài bằng nhau, chúng ta trả lại vệt sau.
- Chuỗi sau bắt đầu ở vị trí 2 ^ 5
- Kết quả là hàm của bạn trả về 5
0
. Đó là một trường hợp thử nghiệm quan trọng.