标签:uva
#include<stdio.h> #include<math.h> #include<string.h> char s[250]; char a[10][250]; int a1[4]; int a2[250]; char ch; int init(int len) { int tt=0; for(int i=1;i<=7;i++) { for(int j=0;j<(int)pow(2,i)-1;j++) { a[i][j]=s[tt++]; if(tt>=len) break; } if(tt>=len) break; } } int tran(int *aa,int len) { int temp=0; for(int i=len-1,j=0; i>=0; i--,j++) { temp+=(int)aa[i]*pow(2,j); } return temp; } int main() { while(gets(s)!=NULL) { memset(a,0,sizeof(a)); int len=strlen(s); init(len); while(1) { int t2=0; while(t2<3) { scanf("%c",&ch); if(ch=='1'||ch=='0') { a1[t2]=ch-'0'; t2++; } } int lenth=tran(a1,3); if(lenth==0) { scanf("%c",&ch); printf("\n"); break; } while(1) { int t3=0; while(t3<lenth) { scanf("%c",&ch); if(ch=='1'||ch=='0') { a2[t3]=ch-'0'; t3++; } } int ans=tran(a2,lenth); if(ans!=(int)pow(2,lenth)-1) printf("%c",a[lenth][ans]); else break; } } } return 0; }
uva 213 - Message Decoding (我觉得我的方法要比书上少很多代码,不保证好……)
标签:uva
原文地址:http://blog.csdn.net/u013382399/article/details/37985619