01序列
查看题解 查看答案
题目描述
Time Limit: 1000 ms
Memory Limit: 256 mb
对于长度为6位的一个01串,每一位都可能是0或1,一共有64种可能。它的前几个是:
000000
000001
000010
000011
000100
请按从小到大的顺序输出这64种01串。
输入输出格式
输入描述:
输出描述:
输出64行,每行一个01串。
#include<iostream>
#include<cstring>
using namespace std;
struct node{
int data[1000];
int top = -1;
};
int main(){
struct node stack;
int n;
cout<<"000000"<<endl; //先把0000000输出。。。。
for(n = 1; n < 64; n++){ //输出剩下63个
stack.top = -1; //初始化栈
int v = n; //不能改n,用一个中间值
while(v >= 1){
int y = v %2;
stack.data[++stack.top] = y; //把余数入栈
v /= 2;
}
int c = 6 - stack.top; //前面补零
for(int i = 1; i < c; i++){
cout<<"0";
}
while(stack.top != -1){
cout<<stack.data[stack.top--];
}
cout<<endl;
}
return 0;
}