【九度OJ】問題1473:2進数解題報告


【九度OJ】問題1473:2進数解題報告
ラベル(スペース区切り):9度OJ
http://ac.jobdu.com/problem.php?pid=1473
タイトルの説明:
データがコンピュータに格納されるのはバイナリ形式で格納されることはよく知られています.ある日、明ちゃんはC言語を勉強した後、unsigned intタイプの数字を知りたいと思っていました.コンピュータに格納されているバイナリ列はどんなものですか.明ちゃんを助けてくれませんか.そして、明ちゃんはバイナリ列の前の意味のない0列を望んでいません.つまり、プリアンブル0を取り除きます.
入力:
1行目は、1桁の数字T(T<=1000)で、以下に要求される数字の個数を表す.次にT行があり、各行にn(0<=n<=10^8)の数字があり、要求されるバイナリ列を表す.
出力:
出力共T行.求めたバイナリ列を各行出力する.
サンプル入力:
5
23
535
2624
56275
989835

サンプル出力:
10111
1000010111
101001000000
1101101111010011
11110001101010001011

Ways
この問題は同じBig Integerクラスの使用です.一つの点に注意してください.私が間違っています.nを読み込むときは、そのまま1行読み込んでから変換し、nextInt()であれば改行文字が残りますが、次のnextLine()は空です.エラーを引き起こす.
import java.util.*;
import java.math.*;

public class Main{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            int n = Integer.parseInt(scanner.nextLine());//   
            for (int i = 0; i < n; i++) {
                String num = scanner.nextLine();
                System.out.println(change(num, 10, 2));
            }
        }
    }
    private static String change(String num, int from, int to) {
        return new BigInteger(num, from).toString(to);
    }
}

Date
2017年3月17日