博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1696:逆波兰表达式
阅读量:6237 次
发布时间:2019-06-22

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

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中。
此题可使用函数递归调用的方法求解。
来源
计算概论05
1 #include
2 #include
3 #include
4 using namespace std; 5 char a[1001]; 6 double ans; 7 double f() 8 { 9 cin>>a;10 if(a[0]>='0'&&a[0]<='9')11 {12 return atof(a);13 }14 else15 {16 if(a[0]=='+')17 {18 return f()+f();19 }20 else if(a[0]=='-')21 {22 return f()-f();23 }24 else if(a[0]=='*')25 {26 return f()*f();27 }28 else if(a[0]=='/')29 {30 return f()/f();31 }32 }33 }34 int main()35 {36 printf("%f\n",f());37 return 0;38 }

 

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

你可能感兴趣的文章
ANTLR4权威參考手冊(一)
查看>>
【UVA 11462】 Age Sort(基数排序)
查看>>
Linux命令: chown
查看>>
[转]SpringMVC+Hibernate+Spring 简单的一个整合实例
查看>>
【转】在Win7的IIS上搭建FTP服务及用户授权
查看>>
MyCAT ER分片的验证
查看>>
对匿名函数的深入理解(彻底版)
查看>>
ORACLE字符集基础知识
查看>>
JSP自定义标签开发入门《转》
查看>>
ResultSet相关ResultSetMetaData详细
查看>>
IIS7.5下的web.config 404应该如何配置
查看>>
分享20个最新的免费 UI 设计素材给设计师
查看>>
大论文中对参考文献添加操作相关总结
查看>>
Redis源代码分析(三)---dict哈希结构
查看>>
安卓--获取应用版本名称与版本号
查看>>
【转】Java判断是否是整数,小数或实数的正则表达式
查看>>
****创业者必看:黄太吉商业计划书完整版
查看>>
angularJS 事件广播与接收[转]
查看>>
The main reborn ASP.NET MVC4.0: using CheckBoxListHelper and RadioBoxListHelper
查看>>
什么是数据抽取
查看>>