A + B
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 7145 Accepted Submission(s): 4025
需要注意的是:A和B的每一位數字由對應的英文單詞給出.
#include<iostream>
#include<cstring>
using namespace std;
string word[]={"zero","one","two","three","four","five","six","seven","eight","nine"};
int main(){
string cin1,cin2;
int result=0,A=0,B=0,forward=0,a=0,b=0;
while(1){
cin>>cin1>>cin2;
for(int i=0;i<10;i++){
if(cin1==word[i]) a=i;
if(cin2==word[i]) b=i;
}
if(cin1!="+"&&cin2!="+"&&cin1!="="&&cin2!="="){
if(forward==0){
A=10*(10*A+a)+b;
}
else{
B=10*(10*B+a)+b;
}
}
else if(cin1=="+"){
result+=A;
B=10*B+b;
forward=1;
}
else if(cin2=="+"){
A=10*A+a;
result+=A;
forward=1;
}
else if(cin1=="="){
result+=B;
if(result==0) break;
cout<<result<<endl;
result=0,forward=0;
A=0,B=0;
A=10*A+b;
}
else if(cin2=="="){
B=10*B+a;
result+=B;
if(result==0) break;
cout<<result<<endl;
result=0,forward=0,A=0,B=0;
}
}
return 0;
}