C Language:
#include<stdio.h>main()
{
char in[30];
int i,n,cnt=0;
printf("enter n value\n");
scanf("%d",&n);
printf("enter the pattern that you don't want in side the binary string\n");
scanf("%s",&in);
printf("all the patterns without %s are \n",in);
printall(in,n,&cnt);
printf("count = %d\n",cnt);
}
void printall(char in[], int n, int *cnt)
{
char out[30]="";
aux_printall(in,out,0,n,cnt);
}
void aux_printall(char in[], char out[], int d, int n, int *cnt)
{
if(d>strlen(in))
{
out[d]='\0';
if(strstr(out,in)!=NULL)
return;
}
if(d==n) // print output
{
out[n]='\0';
printf("%s\n",out);
(*cnt)++;
return;
}
out[d]='0';
aux_printall(in,out,d+1,n,cnt);
out[d]='1';
aux_printall(in,out,d+1,n,cnt);
}
Java:
import java.util.Scanner;
class Binary
{
public static void main(String [] args)
{
Scanner input = new Scanner(System.in);
int[] cnt = new int[1];
cnt[0]=0;
System.out.print("Enter n:\n");
int n = input.nextInt();
System.out.print("Enter string that you don't want inside the binery string \n");
String in = input.next();
System.out.print("The binary strings of length "+n+" and without haveing "+in+" are\n");
printall(in, n,cnt);
System.out.println("the count is "+cnt[0]);
}
public static void printall(String in, int n, int [] cnt)
{
String out="";
int d=0;
auxprintall(in,out,d,n,cnt);
}
public static void auxprintall(String in, String out, int d, int n, int [] cnt)
{
if(out.contains(in))
return;
if(d==n)
{
System.out.println(out);
cnt[0]++;
return;
}
auxprintall(in,out+"0",d+1,n,cnt);
auxprintall(in,out+"1",d+1,n,cnt);
}
}
No comments:
Post a Comment