View Code of Problem 16

#include<bits/stdc++.h>
using namespace std;

int main(void)
{
  int t,i,j,in,cnt,a,b,flag,sum;
  string s[10]={"zero","one","two","three","four","five","six","seven","eight","nine"};
  string str,str1,s1[100];
  cin>>t;
  while(t--)
  {
    cin>>in;
    a=0;b=0;
    cnt=0;
    flag=1;
    while(cin>>str)
    {
      if(str=="+")
        break;
      if(isdigit(str[0]))
      {a=stoi(str);flag=0;}
      s1[cnt]=str;
      ++cnt; 
    }
    if(flag)
       {
         for(i=0;i<cnt;++i)
           for(j=0;j<10;++j)
             if(s[j]==s1[i])
               a+=j*int(pow(10,cnt-i-1));
       }
    cnt=0;
    flag=1;
    while(cin>>str)
    {
      if(str=="=")
        break;
      if(isdigit(str[0]))
      {b=stoi(str);flag=0;}
      s1[cnt]=str;
      ++cnt; 
    }
    if(flag)
       {
         for(i=0;i<cnt;++i)
           for(j=0;j<10;++j)
             if(s[j]==s1[i])
               b+=j*int(pow(10,cnt-i-1));
       }
    sum=a+b;
    if(in==0)
      cout<<sum<<endl;
    else
    {
      str=to_string(sum);
      for(i=0;i<str.size();++i)
      {
        str1=str[i];
        j=stoi(str1);
        if(i==0)
          cout<<s[j];
        else
          cout<<" "<<s[j];
      }  
      cout<<endl;
    } 
  }
}

Double click to view unformatted code.


Back to problem 16