Description
Input
The input will contain one tape.
Output
Output the message that is written on the tape.
Sample Input
___________ | o . o| | o . | | ooo . o| | ooo .o o| | oo o. o| | oo . oo| | oo o. oo| | o . | | oo . o | | ooo . o | | oo o.ooo| | ooo .ooo| | oo o.oo | | o . | | oo .oo | | oo o.ooo| | oooo. | | o . | | oo o. o | | ooo .o o| | oo o.o o| | ooo . | | ooo . oo| | o . | | oo o.ooo| | ooo .oo | | oo .o o| | ooo . o | | o . | | ooo .o | | oo o. | | oo .o o| | o . | | oo o.o | | oo . o| | oooo. o | | oooo. o| | o . | | oo .o | | oo o.ooo| | oo .ooo| | o o.oo | | o. o | ___________
Sample Output
A quick brown fox jumps over the lazy dog.
yiyi :看了样例后,我猜到了一行 代表一个字母,我也想到了ASCLL码,但就是怎么都想不出,和它有什么关系,后来看了别人写的,才发现与二进制有关系,把o看成1,把‘
’(空格)看成0,其余的不需要管,但是记住第二个|要输出当前的字符。而且每读取一行数据,对数据进行处理输出字符。还有一个就是,输出时不需要换行。
答案:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <algorithm>
int main () {
char ch;
int sum = 0;
int count = 0;
while ((ch = getchar()) != EOF) {
if (ch == 'o') {
//当为一时,就多了个二。
sum = sum * 2 + 1;
}
else if (ch == ' ')
sum = sum * 2;
else if (ch == '|') {
count++;
if (count == 2) {
putchar(sum);
count = 0;
sum = 0;
}
}
}
return 0;
}