题目:
逆波兰表达式定义:1)一个数是一个逆波兰表达式值为该数
2)运算符 逆波兰表达式 逆波兰表达式 是其表达式,只有两个逆波兰表达式的值运算的结果
思路:用递归解决递归形式问题。
#include <iostream>
#include<cstdlib>
#include<cstdio>
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);//atof把字符串转为浮点型。当不是运算符而是逆波兰表达式时则返回它自身的值break;}
}int main()
{printf("%lf", exp());return 0;
}
样例: