逆波兰表达式
【摘要】
逆波兰表达式
逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式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)