#2016. 奇迹编码

内存限制:32 MiB 时间限制:500 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: bluebean

题目描述

正常的二进制数字编码方式有一种缺点:每当数字每加一,编码中可能有多个位数被改变。比如从 ,数字只增加了一,二进制编码却由 0001 变成了 0010 ,改变了两位。

现在有一种奇迹编码,它摒弃了二进制编码的缺点。在这种编码方式下,任意两个相邻数字的编码中只有一位二进制数不同。

举例而言,在奇迹编码下, 位数字 的编码是 0000 0000 0000 0000 0000 0000 0000 0000 的编码为 0000 0000 0000 0000 0000 0000 0000 0001 的编码是 0000 0000 0000 0000 0000 0000 0000 0011 的编码是 0000 0000 0000 0000 0000 0000 0000 0010

给出一种生成奇迹编码的方式:

以二进制 值的奇迹码为第零项,第一步改变第零项中最右边的那一位,得到第一项;第二步改变第一项中右起第一个为 的位的左边那一位,得到第二项;之后反复进行第一步与第二步,即可得到任意项的奇迹编码。

现在给你一个十进制正整数,请你将它的二进制编码转换成对应的奇迹编码并且将得到的奇迹编码视为一个新数字的二进制编码,然后输出这个新数字。

输入格式

一行,一个数字 ,代表待转换的数字。

输出格式

一行,一个数字,代表得到的新数字。

样例

【输入样例1】

3

【输出样例1】

2

【输入样例2】

100

【输出样例2】

86

数据范围与提示

对于 % 的数据,

对于 % 的数据,

通告标题

通告内容

已知晓