View Code of Problem 16

#include <cstdio>
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
string to_num(string ss){
	if(ss=="one"){
		return "1";
	}
	else if(ss=="two"){
		return "2";
	}
	else if(ss=="three"){
		return "3";
	}
	else if(ss=="four"){
		return "4";
	}
	else if(ss=="five"){
		return "5";
	}
	else if(ss=="six"){
		return "6";
	}
	else if(ss=="seven"){
		return "7";
	}
	else if(ss=="eight"){
		return "8";
	}
	else if(ss=="nine"){
		return "9";
	}	
	else if(ss=="zero"){
		return "0";
	}
	else{
		return ss;
	}
}

string getstring(string ss){
	int len=ss.length();
	string res;
	for(int i=0;i<len;i++){
		if(ss[i]=='0'){
			res+="zero";
		}
		else if(ss[i]=='1'){
			res+="one";	
		}
		else if(ss[i]=='2'){
			res+="two";	
		}
		else if(ss[i]=='3'){
			res+="three";	
		}
		else if(ss[i]=='4'){
			res+="four";	
		}
		else if(ss[i]=='5'){
			res+="five";	
		}
		else if(ss[i]=='6'){
			res+="six";	
		}
		else if(ss[i]=='7'){
			res+="seven";	
		}
		else if(ss[i]=='8'){
			res+="eight";	
		}
		else if(ss[i]=='9'){
			res+="nine";	
		}
		
		if(i!=len-1){
			res+=" ";
		}
	}
	return res;
}
int main(){
	int t;
	cin>>t;
	for(int i=0;i<t;i++){
		int flag;
		cin>>flag;
		string temp;
		string str;
		while(1){
			cin>>temp; 
			if(temp=="="){
				break;
			}
			else{
				str+=to_num(temp);
			}
			
		}
		int posadd=str.find("+");
		int len=str.length();
		int num1=stoi(str.substr(0,posadd));
		int num2=stoi(str.substr(posadd,len-posadd));
		int res=num1+num2;
		if(flag==0)
			cout<<res<<endl;
		else{
			string result;
			result=getstring(to_string(res));
			cout<<result<<endl;
		}
		
	} 
	return 0;
} 

Double click to view unformatted code.


Back to problem 16