题目描述
对于一个十进制数 A,将 A 转换为二进制数,然后按位逆序排列,再转换为十进制数 B,我们称 B 为 A 的二进制逆序数。
例如对于十进制数 173,它的二进制形式为 10101101,逆序排列得到 10110101,其十进制数为 181,181 即为 173 的二进制逆序数。
输入
一个十进制数 A。
A 是正整数且不超过15位
输出
输出 A 的二进制逆序数 B。
样例输入 Copy
173
样例输出 Copy
181
代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
long long a,b=0;
scanf("%lld",&a);
while(a>0){
b=b*2+a%2;
a/=2;
}
printf("%lld",b);
return 0;
}