逆波兰表达式

举报
ReCclay 发表于 2022/02/23 00:33:26 2022/02/23
【摘要】 逆波兰表达式 逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的逆波兰表达式为 + 2 3 逆波兰表达式的优点是运算符不必有优先级关系,也不必用括号改变运算次序, 例如(2+3...

逆波兰表达式

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

输入

输入一行,其中运算符和运算数之间用空格隔开

输出

输出为一行表达式的值

逆波兰表达式的定义:
1.一个数就是一个逆波兰表达式,这个数就是逆波兰表达式本身 //相当于一个终止条件
2.“运算符 逆波兰表达式 逆波兰表达式” 是逆波兰表达式,值为两个逆波兰表达式运算出的结果
// 逆波兰表达式本身就是一个递归

#include <iostream>
#include <cmath>
#include <cstdio>
#include <cstdlib>
using namespace std;

double Exp()
{
    char s[100];
    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("%.2f", Exp());
    return 0;
}
  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

文章来源: recclay.blog.csdn.net,作者:ReCclay,版权归原作者所有,如需转载,请联系作者。

原文链接:recclay.blog.csdn.net/article/details/60764313

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。