【九度OJ】题目1473:二进制数 解题报告

【九度OJ】题目1473:二进制数 解题报告

标签(空格分隔): 九度OJ


http://ac.jobdu.com/problem.php?pid=1473

题目描述:

大家都知道,数据在计算机里中存储是以二进制的形式存储的。
  有一天,小明学了C语言之后,他想知道一个类型为unsigned int 类型的数字,存储在计算机中的二进制串是什么样子的。
  你能帮帮小明吗?并且,小明不想要二进制串中前面的没有意义的0串,即要去掉前导0。

输入:

第一行,一个数字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的时候,直接读入一行再转换,如果是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 日

你可能感兴趣的:(算法,九度OJ,考研机试-九度OJ)