问题描述
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
00000
00001
00010
00011
00100
请按从小到大的顺序输出这32种01串。
输入格式
本试题没有输入。
输出格式
输出32行,按从小到大的顺序每行一个长度为5的01串。
样例输出
00000
00001
00010
00011
<以下部分省略>
这道题有两个解题思路,第一个是用数组,a【0】~a【4】,进行32轮加法处理,每当a【i】中的数字大于2,就让a【i-1】+1.,加到a【4】输出一次。
林一个就是用10进制转2进制de计算方法将十进制的数字不停的除2再取余2,余数就是二进制当前位置的数字。
例如5
6%2=0
6/2%2=1
6/2/2%2=1
则6的二进制数为110.
由以上思路得到的代码如下:
#include<iostream>
main(){
int i;
for(i=0;i<32;i++){
printf("%d%d%d%d%d\n",i/2/2/2/2%2,i/2/2/2%2,i/2/2%2,i/2%2,i%2);
}
}
今天的一千字够了(*^▽^*),溜啦溜啦─=≡Σ(((つ•̀ω•́)つ