-
题目描述:
-
对于一个十进制数A,将A转换为二进制数,然后按位逆序排列,再转换为十进制数B,我们乘B为A的二进制逆序数。
例如对于十进制数173,它的二进制形式为10101101,逆序排列得到10110101,其十进制数为181,181即为173的二进制逆序数。
-
输入:
-
一个1000位(即10^999)以内的十进制数。
-
输出:
-
输入的十进制数的二进制逆序数。
-
样例输入:
-
173
-
样例输出:
-
181
-
-
123456789101112131415161718192021222324
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
));
}
}
}
/**************************************************************
Problem: 1208
User: 3011216016
Language: Java
Result: Accepted
Time:190 ms
Memory:23704 kb
****************************************************************/