#include<iostream>
#include<math.h>
using namespace std;
void Init(int* A,int k) {
int i=0;
for(i=0;i<k;i++){
A[i]=0;
}
for(i=k-1;i>=0;i--){
cout<<A[i];
}
cout<<endl;
}
void INCREMENT(int *A,int k){
int i=0;
while((i<k) && (A[i]==1)){
A[i]=0;
i+=1;
}
if(i<k){
A[i]=1;
}
}
void Print(int* A,int k) {
int total=pow(2,k);
for(int j=1;j<total;j++){
INCREMENT(A,k);
for(int i=k-1;i>=0;i--){
cout<<A[i];
}
cout<<endl;
}
}
void Delete(int *A){
delete[]A;
}
int main(){
int k;
int *A;
cin>>k;
A=new int[k];
Init(A,k);
Print(A,k);
Delete(A);
return 0;
}
二进制位串排列
最新推荐文章于 2024-09-01 09:27:44 发布