试题 基础练习 01字串
资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
00000
00001
00010
00011
00100
请按从小到大的顺序输出这32种01串。
输入格式
本试题没有输入。
输出格式
输出32行,按从小到大的顺序每行一个长度为5的01串。
样例输出
00000
00001
00010
00011
<以下部分省略>
这道题用一个for循环把1到31输出来转换成二进制即可,直接上代码
import java.util.*;
public class Main {
public static void main(String []args) {
String str = "";
int n = 0;
for(int i = 0; i<=31;i++) {
str = Integer.toBinaryString(i);//将十进制数转换成二进制字符串
n=str.length();
//用while循环对长度不够5的字符串前边补0
//因为字符串长度至少是1(比如1转换成二进制字符串长度为1,也就是说最多补4个0,所以n<=4即可)
while(n<=4) {
System.out.print(0);
n++;
}
System.out.println(str);
}
}
}
附上java中进制转换常用的方法
1.十进制转成二进制
String s = Integer.toBinaryString(n) //将十进制数转成字符串,例如n=6 ,s = “110”
2.将字符串转成整形
int a = Integer.valueof(“1001”); //当然s只能是数字类的字符串
或者 int a = Integer.parseInt(“1001”);
3.将整形转成字符串
String s = String.valueof(1025);
4.将整形转成十六进制的数
String s = Integer.toHexString(18); //输出结果12