输入n,输出对应的所有长度为n的二进制串
#include <iostream>
#include <math.h> #include <stack> using namespace std; void print(unsigned int n) { int max = pow((double)2,(int)n); unsigned int MASK = 0x00000001; stack<int> s; for(unsigned int i=0; i<max; i++) { for(int j=0; j<n; j++) { s.push(((i & MASK)==MASK) ? 1:0); MASK=MASK<<1; } while(s.size()) { cout << s.top(); s.pop(); } MASK=MASK>>n; cout << endl; } } void main() { print(3); } #include <iostream> using namespace std; int main() { char a[100]; int pa=0; int n; cin>>n; for (int i=0;i<n;i++) a[i]=47; while (pa>=0) { if(pa>=n) { a[pa]=0; cout<<a<<endl; pa--; continue; } if(a[pa]>='1') { a[pa--]=47; continue; } a[pa]++; pa++; } }