題目1208:10進位制 VS 2進位制
阿新 • • 發佈:2019-01-03
import java.util.Scanner; import java.io.FileReader; import java.io.BufferedReader; import java.io.IOException; import java.math.BigInteger; class Main { private final static boolean DEBUG = false; public static void main(String[] args) throws IOException { Scanner cin; BigInteger a; if (DEBUG) { cin = new Scanner(new BufferedReader(new FileReader("d:\\OJ\\uva_in.txt"))); } else { cin = new Scanner(System.in); } while (cin.hasNext()) { a = cin.nextBigInteger(); if (a.compareTo(BigInteger.ZERO) == 0) { System.out.println("0"); continue; } StringBuffer tmp = new StringBuffer(); while (a.compareTo(BigInteger.ZERO) != 0) { BigInteger re = a.remainder(BigInteger.valueOf(2)); tmp.append(re.toString()); a = a.divide(BigInteger.valueOf(2)); } String s = tmp.toString(); BigInteger ans = BigInteger.ZERO; for (int i = 0; i < s.length(); i++) { ans = ans.multiply(BigInteger.valueOf(2)).add(BigInteger.valueOf(s.charAt(i) - '0')); } System.out.println(ans.toString()); } } }