题目:
资源限制
内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
00000
00001
00010
00011
00100
请按从小到大的顺序输出这32种01串。
输入格式
本试题没有输入。
输出格式
输出32行,按从小到大的顺序每行一个长度为5的01串。
样例输出
00000
00001
00010
00011
<以下部分省略>
此题主要思路就是:10进制转化为二进制,然后进行循环就Ok,输出时候逆行循环出来就好
代码如下:
public class Main {
public static void main(String[] args) {
int[] arr=new int[5];//题目说了是5位,也因为5位二进制最大表示为32,此数组用来记录每次的二进制数
int c=0;//进行取余
int b=0;//进行对n除2
for (int i = 0; i < 32; i++) {//因为从0-32所以,不包括32
int tem=i;
for (int j = 0; j < 5; j++) {//
c=tem%2;
arr[j]=c;//将结果赋值给数组
b=tem/2;
tem=b;
}
for (int f = 4; f >=0; f--) {//将集合中的集合逆向遍历输出,因为记录时候,是从前往后,进制是从后往前,所以逆向
System.out.print(arr[f]);
}
System.out.println();
}
}
}