波兰表达式

说明:

波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式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 条评论
登录 后参与评论

相关文章

来自专栏苍云横渡学习笔记

【慕课-数据结构-C++语言】队列篇

原文地址:https://www.cloudcrossing.xyz/post/30/

40419
来自专栏進无尽的文章

编码篇-数组的相关使用

数据的常规方法的使用本文不做描述,本文旨在归纳一些数组不是很常用的方法使用。算作一个归纳笔记,后续会持续更新.....

802
来自专栏mukekeheart的iOS之旅

OC学习13——Foundation框架中的集合

  OC集合类是一些非常有用的工具类,它可以用于存储多个数量不等的对象,并可以实现常用的数据结构(栈、队列等),此外,OC集合还可用于保存具有映射关系的关联数组...

2578
来自专栏ios 技术积累

Objective-C 数组筛选

想项目有可能会遇到按照一定条件对某一个数组进行筛选。 直接遍历数组,取符合条件的对象放到一个新数组效率可能不高。

631
来自专栏猿人谷

Objective-C中的hasPrefix

Objective-C中的hasPrefix hasPrefix:方法的功能是判断创建的字符串内容是否以某个字符开始,其语法形式如下:    -(BOOL)...

1737
来自专栏青玉伏案

Objective-C精选字符串处理方法

        无论是什么编程语言对字符串的操作是少不了的,对复杂的字符串的分析和操作我们可以用正则表达式来达到我们的目的。简单的字符串处理我们可以借助OC中N...

1885
来自专栏猿人谷

Objective-C: 字符串NSString与NSMutableString

      字符串算是OC中非常重要和常用的一部分内容,OC中的字符串与我之前在学习C,C++,Java中的字符串有一定的不同,它非常类似于C++中容器的概念,...

1736
来自专栏xx_Cc的学习总结专栏

iOS-Foundation框架中常用的类

34310
来自专栏学海无涯

3.常量&变量

631
来自专栏青玉伏案

Objective-C中的集合类

       下面详细的介绍Objective-C中的集合类以及每个集合类的用法,学过其他面向对象编程语言的小伙伴们看到OC的集合类会有种莫名的亲切感,理解起来...

1757

扫码关注云+社区