这题是磁带解码,后台好像就这一个测试样例。只要答案正确就可以过了。
思路是,空格代表0,o代表1.组成八位二进制ascII码。注意输入一行输出一行。
#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
string x;
getline(cin,x);
while(getline(cin,x))
{
if(x[0]=='_')
{
break;
}
else
{
int i,j;int m=0;
x.erase(6,1);
for(i=1;i<=8;i++)
{
if(x[i]=='o') m+=(1<<(8-i));
}
putchar(m);
}
}
return 0;
}
原本使用c的字符数组做。然后用fgets输入,但是fgets保留了\n。导致无法多次输入。
改用gets输入,v judge上编译不过。
最后还是改用c++的string,用getline处理了。