2017.12 程序设计基础月考(期末模拟)

K. 二进制倒置

单点时限: 1.0 sec

内存限制: 256 MB

给定一个整数 $n$,将 $n$ 的二进制表示(不包括开头可能的值为 $0$ 的位,$n=0$ 表示为 $1$ 位 $0$)前后倒置,输出倒置后的二进制数对应的整数。

输入格式

输入一个数,表示 $n$。

对于 $30\%$ 的数据,$n \le 10^{18}$。

对于 $90\%$ 的数据,$n \le 10^{100}$。

对于 $100\%$ 的数据,$0 \le n \le 10^{1000}$。

输出格式

输出结果。

样例

Input
10
Output
5
Input
0
Output
0
Input
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Output
7715442851596369463000695959966459436485038766875199595258933941809737

提示

10:其二进制表示为 1010,倒置后为 0101,对应输出就是 5。

10000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
0000000000000

的二进制表示为:

10010010010011010110100100101100101001100001
10111110011101011000010110010011110000100110
00100110011100000101111110011100010101100111
00100000010001110001000010001101001111100101
01010101100100100001100001000101010000010111
01000111100010000000000000000000000000000000
00000000000000000000000000000000000000000000
0000000000000000000000000

倒置后为:

00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000010001111000101110100000101010001
00001100001001001101010101010011111001011000
10000100011100010000001001110011010100011100
11111101000001110011001000110010000111100100
11010000110101110011111011000011001010011010
0100101101011001001001001

对应十进制值为:

7715442851596369463000695959966459436485038766875199595258933941809737