【九度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 日