问题描述
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
00000
00001
00010
00011
00100
请按从小到大的顺序输出这32种01串。
思想
运用二进制的想法
从最右一位取余2,再除以二,往左边一位重复
最后for循环输出
代码详情
#include <iostream>
using namespace std;
int main()
{
for(int num=0;num<32;num++)
{ int a[5]={0};
int index=4;
int n=num;
while(n>=1)
{
a[index--]=n%2;
n=n/2;
}
for(index=0;index<5;index++)
{
cout<<a[index];
}
cout<<endl;
}
}