前缀表达式 (递归)

先说一下递归的作用:
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;
}




posted @ 2018-01-29 20:40  詹晔晔(๑>؂<๑)  阅读(315)  评论(0)    收藏  举报