第一次用java写高精度计算,深深体会到了java的强大。膜拜了,string biginteger类的方法自己查查就成了,网费不够了,先不写了,回头补上
import java.io.*;
import java.util.*;
import java.math.*;
public class Main
{
public static void main (String args[]) throws Exception
{
BufferedReader stdin =
new BufferedReader(
new InputStreamReader(System.in));
String line = stdin.readLine();
BigInteger n = new BigInteger(line, 10);
int s = n.bitCount();
char buf[] = new char[50000];/*这里我是先生成长度为s的1111……字符串,然后利用BigInteger构造函数直接生成结果*/
for(int i = 0; i < s; i++)
buf[i] = '1';
String ans = new String(buf, 0, s);
n = new BigInteger(ans, 2);
System.out.println(n.toString());
}
}