2022-03-27 18:35:17 +08:00
< p > Given a positive integer < code > n< / code > , return the number of the integers in the range < code > [0, n]< / code > whose binary representations < strong > do not< / strong > contain consecutive ones.< / p >
< p > < / p >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 1:< / strong > < / p >
2022-03-27 18:35:17 +08:00
< pre >
< strong > Input:< / strong > n = 5
< strong > Output:< / strong > 5
< strong > Explanation:< / strong >
Here are the non-negative integers < = 5 with their corresponding binary representations:
0 : 0
1 : 1
2 : 10
3 : 11
4 : 100
5 : 101
Among them, only integer 3 disobeys the rule (two consecutive ones) and the other 5 satisfy the rule.
< / pre >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 2:< / strong > < / p >
2022-03-27 18:35:17 +08:00
< pre >
< strong > Input:< / strong > n = 1
< strong > Output:< / strong > 2
< / pre >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 3:< / strong > < / p >
2022-03-27 18:35:17 +08:00
< pre >
< strong > Input:< / strong > n = 2
< strong > Output:< / strong > 3
< / pre >
< p > < / p >
< p > < strong > Constraints:< / strong > < / p >
< ul >
< li > < code > 1 < = n < = 10< sup > 9< / sup > < / code > < / li >
< / ul >