#G326031. [GESP202603 三级 C++] 26. 二进制回文串

提交3 通过2
通过率66.7%
时间限制1000ms
内存限制512MiB
    ID: 218 传统题 1000ms 512MiB 尝试: 3 已通过: 2 难度: 普及- 上传者: 标签>编程题c++字符串(入门)进制进制转换与位运算2星

题目描述

题目描述

对于一个正整数 nn,我们将其转换为不含前导零的二进制表示,如果这个二进制序列从左向右读与从右向左读完全相同,则称该数为二进制回文数。例如,99 的二进制表示为 (1001)2(1001)_2,是二进制回文数;1212 的二进制表示为 (1100)2(1100)_2,不是二进制回文数。

你的任务是:给定一个正整数 nn,计算在 11nn 的范围内二进制回文数的数量。

输入格式

输入一行,包含一个正整数 nn

输出格式

输出一行,包含一个数,表示在 11nn 的范围内二进制回文数的数量。

数据范围

1n1051 \leq n \leq 10^5

测试样例

15
6

样例 1 中,111515 范围内 11335577991515 是二进制回文数。