#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("\n");
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("\n");
}
int main()
{
printf("递归结果:\n");
recursive(arry, 0);
int i = 0;
printf("位移结果:\n");
for(i = 0; i< (1 << N); ++i) bitShift(i);
return 0;
}
这里面我只用到了4个元素的集合,当然这里的元素个数是自己去定义的。
下面是程序运行的结果图: