问题描述:
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
00000
00001
00010
00011
00100
请按从小到大的顺序输出这32种01串。
资源限制:
时间限制:1.0s 内存限制:256.0MB
输入格式:
本题没有输入格式
输出格式:
输出32行,按从小到大的顺序每行一个长度为5的01串。
样例输出:
00000
00001
00010
00011
<以下部分省略>
分析:
这题只需要从0循环31次,再将他们的二进制输出即可
public class Main {
public static void main(String[] args) {
long start=System.currentTimeMillis();
for(int i=0;i<32;i++) {
binaryToDecimal(i);
System.out.println();
}
long end=System.currentTimeMillis(); //获取结束时间
System.out.println("程序运行时间: "+(end-start)/1000+"s");
}
public static void binaryToDecimal(int n){
for(int i = 4;i >= 0; i--)
System.out.print(n >>> i & 1);
}
}
这个方法转化为二进制能选择保留的位数,原理是依次将最高位左移到最低位,再与1&运算。