#include <bits/stdc++.h> using namespace std; string str[10]={"zero","one","two","three","four","five","six","seven","eight","nine"}; map<string,string>m={ {"zero","0"} , {"one","1"}, {"two","2"}, {"three","3"}, {"four","4"}, {"five","5"}, {"six","6"}, {"seven","7"}, {"eight","8"}, {"nine","9"} }; int main(){ int t; cin>>t; while(t--){ int flag,k=1; cin>>flag; string s; getchar(); getline(cin,s); while(k){ k=0; for(int i=0;i<10;i++){ if(s.find(str[i])!=string::npos){ s.replace(s.find(str[i]),str[i].size(),m[str[i]]); k=1; } } } k=1; while(k){ k=0; if(s.find(" ")!=string::npos){ int index=s.find(" "); s.erase(index,1); k=1; } } int index1=s.find("+"); int index2=s.find("="); int a=stoi(s.substr(0,index1)); int b=stoi(s.substr(index1+1,index2)); if(flag==0) cout<<a+b<<endl; else{ vector<int> v; int sum=a+b; while(sum){ v.push_back(sum%10); sum/=10; } for(int i=v.size()-1;i>=0;i--){ if(i!=v.size()-1) cout<<" "<<str[v[i]]; else cout<<str[v[i]]; } v.clear(); cout<<endl; } } } |
Double click to view unformatted code.