博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
递归--练习10--noi1696逆波兰表达式
阅读量:5864 次
发布时间:2019-06-19

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

递归--练习10--noi1696逆波兰表达式

一、心得

递归大法好 

二、题目

1696:逆波兰表达式

总时间限制: 
1000ms
内存限制: 
65536kB
描述
逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的逆波兰表示法为+ 2 3。逆波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2 + 3) * 4的逆波兰表示法为* + 2 3 4。本题求解逆波兰表达式的值,其中运算符包括+ - * /四个。
输入
输入为一行,其中运算符和运算数之间都用空格分隔,运算数是浮点数。
输出
输出为一行,表达式的值。
可直接用printf("%f\n", v)输出表达式的值v。
样例输入
* + 11.0 12.0 + 24.0 35.0
样例输出
1357.000000
提示
可使用atof(str)把字符串转换为一个double类型的浮点数。atof定义在math.h中。
此题可使用函数递归调用的方法求解。

三、AC代码

1 /* 2 noi1696逆波兰表达式 3 递归大法好  4 */  5 #include 
6 #include
7 #include
8 #include
9 using namespace std;10 double f(){11 char s[100];12 cin>>s;13 if(s[0]=='+'){14 return f()+f();15 }16 else if(s[0]=='-'){17 return f()-f();18 }19 else if(s[0]=='*'){20 return f()*f();21 }22 else if(s[0]=='/'){23 return f()/f();24 }25 else return atof(s);26 27 } 28 int main(){29 //freopen("in.txt","r",stdin);30 31 printf("%f\n", f());32 return 0;33 }

 

转载地址:http://aejnx.baihongyu.com/

你可能感兴趣的文章
Duplicate Symbol链接错误的原因总结和解决方法[转]
查看>>
适配器模式
查看>>
建立低权限的ftp帐号
查看>>
htpasswd
查看>>
微软整合实验(七):布署Exchange2010 Mailbox高可用(DAG)
查看>>
spring定时器----JobDetailBean
查看>>
我的友情链接
查看>>
XP下如何删除附件中的游戏组件
查看>>
我的友情链接
查看>>
emma的几个不足之处
查看>>
Java工具类——UUIDUtils
查看>>
使用Node搭建reactSSR服务端渲染架构
查看>>
文件缓存
查看>>
转 博弈类题目小结(hdu,poj,zoj)
查看>>
Java NIO学习笔记八 Pipe
查看>>
远程协助
查看>>
Scrum实施日记 - 一切从零开始
查看>>
关于存储过程实例
查看>>
配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler” 解决办法...
查看>>
AIX 7.1 install python
查看>>