题解:
观察a,b,c,d..字母后发现:
- a=|_oo__.__o|
- b=|_oo__._o_|
- c=|_oo__._oo|
- d=|_oo__.o__|
- e=|_oo__.o_o|
可以知道它是以二进位的方式表示,在把'a'的值(2^0+2^5+2^6=97)加起來后与ASCII表比较,刚好就是表上'a'的值,因此这题把每个字元的值加起來输出即可(换行符号它也已经在input里啰,不用自己换行)。
1 #include <cstdio> 2 using namespace std; 3 4 int main() 5 { 6 char line[50]; 7 while(gets(line)) 8 { 9 if(line[0] != '|') continue; 10 char c = 0; 11 for (int i = 0; line[i]; i++) 12 { 13 if(line[i] == ' ' || line[i] == 'o') 14 c <<= 1; 15 if(line[i] == 'o') 16 c ++; 17 } 18 printf("%c", c); 19 } 20 return 0; 21 }