UVA213 - Message Decoding

来源:互联网 发布:北京网络教学综合平台 编辑:程序博客网 时间:2024/06/05 01:57

这个题真是不错,卡了我一下,也涨了知识。

#include<stdio.h>#include<string.h>#include<stdlib.h>#include<ctype.h>#define N 1005int 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;}


0 0
原创粉丝点击