对于长度为6位的一个01串,每一位都可能是0或1,一共有64种可能。它的前几个是:
000000
000001
000010
000011
000100
请按从小到大的顺序输出这64种01串。
代码
#include <cstdio>
#include <stack>
using namespace std;
//将十进制数转换为二进制数
stack<int> binary(int x) {
stack<int> binStack;
while (x) {
binStack.push(x % 2);
x = x / 2;
}
return binStack;
}
int main() {
for (int i = 0; i <64; ++i) {
int ret = 0;
stack<int> sta=binary(i);
while (!sta.empty()) {
ret = ret * 10 + sta.top();
sta.pop();
}
printf("%06d\n",ret);
}
}