Lấy cảm hứng từ vấn đề thứ tư từ BMO2 2009 .
Cho một số nguyên dương n là đầu vào hoặc một tham số, trả về số lượng số nguyên dương có biểu diễn nhị phân xảy ra dưới dạng các khối trong khai triển nhị phân của n .
Ví dụ: 13 -> 6 vì 13 trong nhị phân là 1101 và nó có các chuỗi con 1101, 110, 101, 11, 10, 1
. Chúng tôi không tính số nhị phân bắt đầu bằng 0 và chúng tôi không đếm số không.
Các trường hợp thử nghiệm
13 -> 6
2008 -> 39
63 -> 6
65 -> 7
850 -> 24
459 -> 23
716 -> 22
425 -> 20
327 -> 16
Bạn có thể nhận n như bất kỳ điều nào sau đây:
- một số nguyên
- một danh sách các giá trị trung thực / giả cho biểu diễn nhị phân
- một chuỗi cho biểu diễn nhị phân
- một chuỗi cơ sở 10 (mặc dù tôi không chắc tại sao mọi người sẽ làm điều này)
Làm cho mã của bạn càng ngắn càng tốt.