#include #include #include using namespace std; template float F(Iterator begin, Iterator end) { Iterator i; if ((i = find(begin,end,'+')) != end) { return F(begin,i-1) + F(i+1,end) ; }else if ((i = find(begin,end,'-')) != end) { return F(begin,i-1) - F(i+1,end) ; }else if ((i = find(begin,end,'*')) != end) { return F(begin,i-1) * F(i+1,end) ; }else if ((i = find(begin,end,'/')) != end) { return F(begin,i-1) / F(i+1,end) ; }else { string str1(begin,end) ; istringstream stream(str1); float i; stream >> i; return i ; } } int main() { string str; float a; getline(cin,str); a = F(str.begin(),str.end()); cout << "Ats: " << a << endl; cin.get(); }