Phương pháp sinh
#include "conio.h"
#include "stdio.h"
void main()
{
clrscr();
int x[30], n,i,k,l,r, dem;
printf("\Nhap vao do dai cua day: ");
scanf("%d",&n);
// Khoi gan gia tri cua day
for (i=0; i<n; i++)
x[i] = 0;
dem=0;
while (i>=0)
{
dem++;
for (i=0; i<n; i++)
printf("%d ",x[i]);
printf("\n");
i=n-1;
while ((i>=0) && (x[i] == 1)) i--;
if(i>=0)
{
x[i] = 1;
for (int j= i+1; j<n; j++)
x[j] = 0;
}
}
printf("%d",dem);
getch();
}
Đệ quy
#include "conio.h"
#include "stdio.h"
void nhiphan(int i);
int x[30],k,i;
static int n;
void printresult()
{
for(int j=0; j<n; j++)
printf("%d ",x[j]);
printf("\n");
}
void main()
{
clrscr();
printf("\Nhap vao do dai cua day: ");
scanf("%d",&n);
nhiphan(0);
getch();
}
void nhiphan(int i)
{
int k;
for ( k=0; k<=1; k++)
{
x[i] = k;
if (i== n-1)
printresult();
else
nhiphan(i+1);
}
}
Nguồn: http://diendan.congdongcviet.com