Easy
You are given an integer n.
An integer is called Monobit if all bits in its binary representation are the same.
Return the count of Monobit integers in the range [0, n] (inclusive).
Example 1:
Input: n = 1
Output: 2
Explanation:
[0, 1] have binary representations "0" and "1".Example 2:
Input: n = 4
Output: 3
Explanation:
[0, 4] include binaries "0", "1", "10", "11", and "100".Constraints:
0 <= n <= 1000public class Solution {
public int countMonobit(int n) {
int count = 1;
int val = 1;
while (val <= n) {
count++;
val = (val << 1) | 1;
}
return count;
}
}