#include <stdio.h>
#include <stdlib.h>

void CreaBinari(int *vettore,int n, int cifra);
void StampaNumero(int *vettore,int n, int t);

int main()
{
	int n, t;
	int *vettore;

	printf("Inserire il numero di bit: ");
	scanf("%d",&n);
	vettore=malloc(n*sizeof(int));

	for(t=0;t<n;t++) vettore[t]=0;

	CreaBinari(vettore,n,0);

	return 0;
}

void CreaBinari(int *vettore,int n, int cifra)
{
    if(cifra==n) StampaNumero(vettore,n,0);
    else if(cifra<n){
        vettore[cifra]=0;
        CreaBinari(vettore,n,cifra+1);
        vettore[cifra]=1;
        CreaBinari(vettore,n,cifra+1);
    }
}

void StampaNumero(int *vettore,int n, int t)
{
    if(t==n){
        printf("\n");
        return;
    } else {
        printf("%d",vettore[t]);
        StampaNumero(vettore,n,t+1);
    }
}
