专栏首页mathor波兰表达式

波兰表达式

说明:

波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的波兰表达式为+ 2 3。波兰表达式的优点是运算符之前不必有优先级关系,也不用括号改变运算次序,例如(2+3)*4的波兰表示法为* + 2 3 4,求解波兰表达式的值,其中运算符包括+-*/四个。

样例输入:* + 11.0 12.0 + 24.0 35.0

样例输出:1357.000000

提示:(11.0+12.0)*(24.0+35.0)

解法:

波兰表达式的定义:

(1)一个数是波兰表达式,值为该数.

(2)波兰表达式的形式为:“运算符 波兰表达式 波兰表达式”,值为两个波兰表达式的值运算的结果.

其实我们仔细看第二点,就会发现,这是一个很明显的递归,“波兰表达式 = 运算符 波兰表达式 波兰表达式”,而第一点类似于递归的出口,当一个数是波兰表达式时,值为该数.

C:

#include <bits/stdc++.h>
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()
{
        printf("%lf",exp());
        return 0;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • LeetCode146. LRU缓存机制

     基础数据结构的应用,HashMap中存的是key和Node,Node中存的是key和value

    mathor
  • 协议常识

     超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准 ...

    mathor
  • 栈和队列的相关问题

     队列可能稍微有点复杂,定义队列的时候需要定义三个变量,分别是end,start,size,先说说他们分别的作用,每次用户拿队中的元素,都从start下标位置取...

    mathor
  • 小朋友学C语言(10):for循环

    看程序: #include <stdio.h> int main() { for(int i = 0; i < 5; i++) { ...

    海天一树
  • httprunner学习13-环境变量.env

    一般来说,在进行实际应用的开发过程中,应用会拥有不同的运行环境,通常会有以下环境:

    上海-悠悠
  • 特征提取算法 | 共空间模式 Common Spatial Pattern(CSP)

    *凡来源非注明"原创"的所有作品,均为转载,其目的在于促进信息分享交流,不做商业用途。若有侵权,请及时通知后台,管理人员删侵。

    脑机接口社区
  • linux 下shell中if的“-e,-d,-f”是什么意思 原

    文件表达式 -e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为真  -f filena...

    拓荒者
  • 如何快速将第三方云存储数据迁移至腾讯云对象存储COS

    对于使用第三方云平台存储的用户,对象存储 COS 支持以下两种迁移方式,帮助用户将第三方云平台的存储数据快速迁移至对象存储 COS。

    云存储
  • 换个姿势看《权力的游戏》,第七季回归之推特数据分析

    原作者 Conor Dewey 编译 Mika 本文为 CDA 数据分析师原创作品,转载需授权 作为一部红遍全球的美剧,《权力的游戏》可谓是当之无愧的神剧。自...

    CDA数据分析师
  • 不停机分库分表迁移

    类似订单表,用户表这种未来规模上亿甚至上十亿百亿的海量数据表,在项目初期为了快速上线,一般只是单表设计,不需要考虑分库分表。随着业务的发展,单表容量超过千万甚至...

    吴生

扫码关注云+社区

领取腾讯云代金券