/*
2694:逆波兰表达式
思路,逆波兰表达式是一个递归定义的问题,首先,一个数就是一个逆波兰表达式,
其次,运算符加上两个逆波兰表达式也是逆波兰表达式,故而利用递归解决
注意,exp()返回值是double,用float会报错
atof定义在#include<cstdlib>中,将字符串转换为浮点数,除此外还有atoi字符串转换为
int,itoa int转换为字符串
*/
#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
double exp()
{
char s[20];
cin >> s;
switch(s[0]){
case '+': return exp() + exp();
case '-': return exp() - exp();
case '*': return exp() * exp();
case '/': return exp() / exp();
default: return atof(s);
}
}
int main()
{
printf("%f",exp());
return 0;
}
09-13
316
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
09-11
09-11