package jiChu;
/**
* 问题描述
* 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
* 00000
* 00001
* 00010
* 00011
* 00100
* 请按从小到大的顺序输出这32种01串。
*
* 输入格式
* 本试题没有输入。
* 输出格式
* 输出32行,按从小到大的顺序每行一个长度为5的01串。
*
* 样例输出
* 00000
* 00001
* 00010
* 00011
* <以下部分省略>
*
* @author Vivinia
*
* 2018年1月19日
*/
public class ZeroOneString {
public static void main(String[] args) {
for(int i=0;i<32;i++) {
String str=""; //前边补的0字符串
if(i<2)
str="0000";
else if(i<4)
str="000";
else if(i<8)
str="00";
else if(i<16)
str="0";
System.out.println(str+Integer.toBinaryString(i)); //十进制转换二进制
}
}
}
1.十进制转二进制方法:Integer.toBinaryString(十进制数),但是转换后的并不加前边的0,即除了0以为,其余的数最高为都为1,如:1,110,1110,所以需要补充0使所有的数的位数都一样
2.补充0时,可设置一个公共字符串,根据十进制数的范围进行设置0的个数,减少代码冗余度