逆波兰表达式求值
发布日期:2021-07-27 19:48:15 浏览次数:4 分类:技术文章

本文共 659 字,大约阅读时间需要 2 分钟。

逆波兰表达式:

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

大体思路:

利用递归,每碰到一个运算符就递归相应的运算两次。

代码实现:

#include
#include
#include
#include
#include
using namespace std;double RPN(){ char s[15]; cin>>s; if(s[0]=='+')//遇到运算符,对应相应的计算。并递归 return RPN()+RPN(); else if(s[0]=='-') return RPN()-RPN(); else if(s[0]=='*') return RPN()*RPN(); else if(s[0]=='/') return RPN()/RPN(); else return atof(s);//将字符串转变为浮点型数据}int main(){ double ans=RPN(); cout<
<

转载地址:https://blog.csdn.net/SCaryon/article/details/56026250 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:2016年安大校赛(补题)
下一篇:HDU2553 N皇后

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年09月27日 00时18分15秒