这个题真是不错,卡了我一下,也涨了知识。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<ctype.h>
#define N 1005
int str[] ={0,0,1,4,11,26,57,120};
int getcc(char *a,int n)
{
int i,k=1;
for(i=0;i<n;i++)
{
a[i]=getchar();
if(a[i]==10)
a[i]=getchar();
if(a[i]==48)
k=0;
}
return k;
}
int main()
{
char s[N],a[N];
while(gets(s)!=NULL)//¶ÁÈ¡ÃÜÂë
{
while(1)
{
(void)getcc(a,3);
int i,sum=0;
for(i=0;i<3;i++)
sum=sum*2+a[i]-48;
if(!sum) break;
while(1)
{
int sum2=0,k = getcc(a,sum);
if(k)
break;
for(i=0;i<sum;i++)
sum2=sum2*2+a[i]-48;
printf("%c",s[sum2+str[sum]]);
}
}
printf("\n");
getchar();
}
return 0;
}