问题描述
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
00000
00001
00010
00011
00100
请按从小到大的顺序输出这32种01串。
输入格式
本试题没有输入。
输出格式
输出32行,按从小到大的顺序每行一个长度为5的01串。
样例输出
00000
00001
00010
00011
<以下部分省略>
- 锦囊1
使用五层循环。 - 锦囊2
最外面一层循环枚举最左边一位,第二层循环枚举左边第二位,依次类推,第五层循环枚举最低位。
代码展示
- C代码 (循环嵌套)
#include <stdio.h>
#include <math.h>
int main(void)
{
for(int i = 0; i <= 1; i ++)
{
for(int j = 0;j <= 1; j ++)
{
for(int k = 0; k <=1; k ++)
{
for(int x = 0; x <= 1; x ++)
{
for(int y = 0; y <= 1; y ++)
{
printf("%d%d%d%d%d\n", i, j, k, x, y);
}
}
}
}
}
return 0;
}
- C++代码
#include <iostream>
using namespace std;
int main(void)
{
for(int i = 0; i <=1; i ++)
{
for(int j = 0; j <= 1; j ++)
{
for(int k = 0; k <= 1; k ++)
{
for(int x = 0; x <= 1; x ++)
{
for(int y = 0; y <= 1; y ++)
{
cout << i <<j << k << x << y << endl;
}
}
}
}
}
return 0;
}
- JAVA代码
public class Main{
public static void main(String args[]){
for(int i = 0; i <=1; i ++)
{
for(int j = 0; j <= 1; j ++)
{
for(int k = 0; k <= 1; k ++)
{
for(int x = 0; x <= 1; x ++)
{
for(int y = 0; y <= 1; y ++)
{
StringBuffer s = new StringBuffer();
System.out.println(s.append(i).append(j).append(k).append(x).append(y));
}
}
}
}
}
}
}