1.替代多重循环
2.解决本来就是递归形式定义的问题
3.将问题分解为规模更小的子问题进行求解
本题中“前缀表达式”的定义:
1) 一个数是一个前缀兰表达式,值为该数
2)“运算符 前缀表达式 前缀表达式"
是逆波兰表达式,值为两个前缀表达式的值运算的结果
因为前缀表达式的定义本身就是递归的,所以可以用递归来解决它
#include <iostream>
#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);
break;
}
}
int main()
{
cout<<exp();
return 0;
}