给你一个 非负 整数 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