问题描述
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
00000
00001
00010
00011
00100
请按从小到大的顺序输出这32种01串。
输入格式
本试题没有输入。
输出格式
输出32行,按从小到大的顺序每行一个长度为5的01串。
样例输出
00000
00001
00010
00011
00001
00010
00011
<以下部分省略>
代码如下:
暴力求解。如果做题没有明确思路可尝试直接将需要在屏幕上输出的内容放入输出函数中。注意\n换行的使用。
锦囊提示所提供的算法,很简单也很巧妙。
注意:
1.嵌套循环的执行过程:首先执行外循环,然后执行内循环,外循环每执行一次,内循环就完整的执行一遍。
2.for语句的嵌套循环适用于解答穷举法或枚举法问题(重复型算法。对问题的所有可能状态一一测试,直到找到解为止。)例如:打印星号问题、兑换硬币问题、登记学生成绩问题、输出九九乘法表问题等。
3.最后的输出语句相当于
for(a=1;a<=5;a++)
printf("\n");
二进制表达的用法。将十进制转换为二进制用到的公式 :
i的二进制数n位的值为:i%(2的n次方)/(2的n-1次方)