-
题目描述:
-
对于一个十进制数A,将A转换为二进制数,然后按位逆序排列,再转换为十进制数B,我们乘B为A的二进制逆序数。
例如对于十进制数173,它的二进制形式为10101101,逆序排列得到10110101,其十进制数为181,181即为173的二进制逆序数。
-
输入:
-
一个1000位(即10^999)以内的十进制数。
-
输出:
-
输入的十进制数的二进制逆序数。
-
样例输入:
-
173
-
样例输出:
-
181
-
来源:
import java.math.*;
import java.util.*;
public class Main {
public static void main(String args[]){
Scanner cin=new Scanner(System.in);
BigInteger a;
String s;
while(cin.hasNext()){
a=cin.nextBigInteger();
s=new StringBuilder(a.toString(2)).reverse().toString();//必须用stringbuilder
System.out.println(new BigInteger(s,2));
}
}
}