http://acm.hdu.edu.cn/showproblem.php?pid=4144
题意:用任意字母表示0,用数字表示1,每5个字符得到一个二进制数字,然后根据二进制编码,找到相应的字母,输出破译后的字符串。
#include <iostream>
#include <string.h>
using namespace std;
#define LEN 10005
char s[LEN];
void decode(char *s){
int i,j,t;
char c=0;
for (i=0;i<5;i++){
if (s[i]>=48&&s[i]<=57){
t=1;
for (j=0;j<(4-i);j++) //这个,二进制到十进制的转换…… 自我感觉并不是很优秀的样子。
t=t*2;
c+=t;
}
}
printf("%c",c+65);
}
int main(){
#ifndef ONLINE_JUDGE
freopen("Gin.txt","r",stdin);
#endif
int l,i;
while (scanf("%d%s",&l,s)!=EOF){
for (i=0;i<l;i+=5)
decode(s+i);
putchar(10);
}
return 0;
}