一个二进制数是其他的二进制数的任何一个的前缀,就输出no,都不是前缀就输出yes。
#include <stdio.h>
#include <string.h>
int main()
{
int i,j,n,m,s,t,l1,l2,x;
char s1[100][100];
int flag=1;
while(scanf("%s",s1[0])!=EOF)
{
for(i=1;;i++)
{
scanf("%s",s1[i]);
if(strlen(s1[i])==1&&s1[i][0]=='9')
{
break;
}
}
n=i;
for(i=0;i<=n-1;i++)
{
l1=strlen(s1[i]);
for(j=i+1;j<=n-1;j++)
{
l2=strlen(s1[j]);
for(x=0;x<=l1-1&&x<=l2-1;x++)
{
if(s1[i][x]!=s1[j][x])
{
break;
}
}
if(x==l1||x==l2)
{
break;
}
}
if(j!=n)
{
break;
}
}
if(i==n)
{
printf("Set %d is immediately decodable\n",flag);
}else
{
printf("Set %d is not immediately decodable\n",flag);
}
flag+=1;
}
return 0;
}