给你一个 非负 整数 n
。
如果一个 非负 整数的二进制表示(不含前导零)正着读和倒着读都一样,则称该数为 二进制回文数。
返回满足 0 <= k <= n
且 k
的二进制表示是回文数的整数 k
的数量。
注意: 数字 0 被认为是二进制回文数,其表示为 "0"
。
示例 1:
输入: n = 9
输出: 6
解释:
在范围 [0, 9]
内,二进制表示为回文数的整数 k
有:
0 → "0"
1 → "1"
3 → "11"
5 → "101"
7 → "111"
9 → "1001"
[0, 9]
中的所有其他值的二进制形式都不是回文。因此,计数为 6。
示例 2:
输入: n = 0
输出: 1
解释:
由于 "0"
是一个回文数,所以计数为 1。
提示:
0 <= n <= 1015