#include <stdio.h> #define N 4 int arry[N]; void recursive (int a[], int n) { if ( n == N) { int i; for(i = 0; i < N; ++i) printf("%d ",a[i]); printf(" "); return ; } a[n]=0; recursive(a, n+1); a[n]=1; recursive(a, n+1); } void bitShift (int a) { for(int i = 0; i < N; ++i) { printf("%d ",a&1); a >>= 1; } printf(" "); } int main() { printf("递归结果: "); recursive(arry, 0); int i = 0; printf("位移结果: "); for(i = 0; i< (1 << N); ++i) bitShift(i); return 0; }
这里面我只用到了4个元素的集合,当然这里的元素个数是自己去定义的。
下面是程序运行的结果图: