题目链接:http://henummc.top/problem.php?cid=1001&pid=1
#include<iostream>
#include<string>
using namespace std;
//yi er san si wu liu qi ba jiu shi
int flag; //标志每次判断字符串所代表数字的起始位置
int pri(string s)
{
string s1,s2;
int num=0;
s1=s.substr(flag,2); //将两个字母拼音的数字与三个字母拼音的数字区分开
if(s1=="yi")
num=1;
else if(s1=="er")
num=2;
else if(s1=="si")
num=4;
else if(s1=="wu")
num=5;
else if(s1=="qi")
num=7;
else if(s1=="ba")
num=8;
if(num!=0)
{
flag+=2;
return num;
}
s2=s.substr(flag,3);
if(s2=="san")
num=3;
else if(s2=="liu")
num=6;
else if(s2=="jiu")
num=9;
else if(s2=="shi")
num=10;
flag+=3;
return num;
}
int main()
{
string a,a1;
int x,y,ss;
while(cin>>a)
{
flag=0;
x=pri(a);
//cout<<"flag1=="<<flag<<endl;
a1=a.substr(flag,4); //判断加减运算符号
//cout<<"a1=="<<a1<<endl;
if(a1=="jian")
{
flag+=4;
ss=-1;
}
else
{
flag+=3;
ss=1;
}
//cout<<"flag2=="<<flag<<endl;
y=pri(a);
/*cout<<"flag3=="<<flag<<endl;
cout<<x;
if(ss==1)
cout<<"+";
else
cout<<"-";
cout<<y<<" == "<<x+ss*y<<endl<<endl;*/
cout<<x+ss*y<<endl;
}
return 0;
}