前缀式计算

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
描述

先说明一下什么是中缀式:

如2+(3+4)*5这种我们最常见的式子就是中缀式。

而把中缀式按运算顺序加上括号就是:(2+((3+4)*5))

然后把运算符写到括号前面就是+(2 *( +(3 4) 5) )

把括号去掉就是:+ 2 * + 3 4 5

最后这个式子就是该表达式的前缀表示。

给你一个前缀表达式,请你计算出该前缀式的值。

比如:

+ 2 * + 3 4 5的值就是 37

输入
有多组测试数据,每组测试数据占一行,任意两个操作符之间,任意两个操作数之间,操作数与操作符之间都有一个空格。输入的两个操作数可能是小数,数据保证输入的数都是正数,并且都小于10,操作数数目不超过500。
以EOF为输入结束的标志。
输出
对每组数据,输出该前缀表达式的值。输出结果保留两位小数。
样例输入
+ 2 * + 3 4 5
+ 5.1 / 3 7
样例输出
37.00
5.53
AC码:
// 调用库函数,递归#include<stdio.h>
#include<stdlib.h>
char str[20];
double fun()
{if(scanf("%s",str)==EOF)return 1<<30;if(str[0]=='+')return fun()+fun();if(str[0]=='-')return fun()-fun();if(str[0]=='*')return fun()*fun();if(str[0]=='/')return fun()/fun();return atof(str);//atof在stdlib.h中的把str字符串转换成double;//atoi在stdlib.h中的把str字符串转换成int;
}
int main()
{while(1){double tp=fun();if(tp<1<<30)printf("%.2lf\n",tp);elsebreak;}
}
AC码:

#include<stdio.h>
char str[1005];
int i=0;
double eval()
{double x=0,t;if(str[i]=='\0')return 0;while(str[i]==' ')i++;if(str[i]=='+'){i++;return eval()+eval();}if(str[i]=='-'){i++;return eval()-eval();}if(str[i]=='*'){i++;return eval()*eval();}if(str[i]=='/'){i++;return eval()/eval();}while(str[i]>='0'&&str[i]<='9'){x=x*10+(str[i]-'0');i++;}if(str[i]=='.'){i++;t=0.1;while(str[i]>='0'&&str[i]<='9'){x=x+(str[i]-'0')*t;t=t*t;i++;}}return x;
}
int main()
{while(gets(str)){i=0;printf("%.2f\n",eval());}return 0;
}        

NYOJ 128 前缀式计算相关推荐

  1. NYOJ128前缀式计算

    前缀式计算 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 先说明一下什么是中缀式: 如2+(3+4)*5这种我们最常见的式子就是中缀式. 而把中缀式按运算顺序加上括号就 ...

  2. 前缀式计算(前缀表达式)

    前缀式计算 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 先说明一下什么是中缀式: 如2+(3+4)*5这种我们最常见的式子就是中缀式. 而把中缀式按运算顺序加上括号就 ...

  3. 脱式计算机在线使用,三年级数学脱式计算500题可直接打印

    文件大小:   资料格式:  下载:198次 资料等级:     所需点数:0 课件类型:/word 注册本站会员,享受高速下载,立即注册会员 三年级数学脱式计算500题可直接打印部分内容预览 25+ ...

  4. 三年级竖式计算机应用题,小学三年级数学上册脱式计算、竖式计算、应用题,各题型汇总! - 副本...

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系:55525090@qq.com,我 ...

  5. JavaSE-常用类、Stream 流式计算

    JavaSE-常用类.Stream 流式计算 常用类 内置包装类 Integer String 类型转换 StringBuilder(JDK1.5) StringBuffer(JDK1.0) Date ...

  6. Vue3官网-高级指南(十七)响应式计算`computed`和侦听`watchEffect`(onTrack、onTrigger、onInvalidate、副作用的刷新时机、`watch` 、pre)

    Vue3官网-高级指南(十七)响应式计算computed和侦听watchEffect(onTrack.onTrigger.onInvalidate.副作用的刷新时机.watch .pre).渲染机制和 ...

  7. RPGSRPG伤害式计算方式杂谈

    RPG&SRPG伤害式计算方式杂谈 以下的损伤式,如果没有特别指明的话,一般讨论的都是普通物理攻击的损伤.魔法攻击.特殊攻击暂不考虑. 基本型: 损伤=攻击力-防御力 其中,攻击力一般要分为人 ...

  8. 前缀式与后缀式的差别

    文章出处: http://blog.sina.com.cn/s/blog_5ca785c30100bb89.html websense的一道笔试题,问++i为什么比i++效率高. 有有心人详细而全面的 ...

  9. 流式计算-Storm基本介绍

    1.离线计算是什么? 离线计算:批量获取数据.批量传输数据.周期性批量计算数据.数据展示 代表技术:Sqoop批量导入数据.HDFS批量存储数据.MapReduce批量计算数据.Hive批量计算数据. ...

最新文章

  1. 【Linux 驱动】第九章 与硬件通信
  2. [评测] 联想 Mirage Solo 一体机:基本性能强大,价格定位很迷
  3. ios AFNetworking 有用篇
  4. 第二十二章:动画(八)
  5. 莫烦Tensorflow教程(15~22)
  6. X3D.Studio编辑器界面介绍
  7. Android之如何用cmd方法查看logcat
  8. 物联网将成为第四次工业革命的基石
  9. 前端验证码绘制(canvas)
  10. 查看手册命令 Oracle,ORACLE 数据库常用日常维护命令手册
  11. Linux运维课程 第一阶段 重难点摘要(一)网络基础
  12. 在页面中直接设计TreeView的节点而不使用Web.Sitemap文件在运行时出错信息
  13. 联想服务器pxe安装系统,使用CloudBoot裸机部署Lenovo ThinkSystem服务器
  14. 自我与人际沟通课程复习
  15. Excel快捷键大全
  16. EML-NET: An Expandable Multi-Layer NETwork for Saliency Prediction【论文笔记】
  17. 塞尔之光的树心旋转机关_塞尔之光攻略心得_塞尔之光怎么创建人物 塞尔之光角色创建方法详解-公共游戏资源网...
  18. Vivado HLS(High-level Synthesis)笔记一:HLS基本流程
  19. 并发编程之并发包详解
  20. 1762 牛的洗牌(递推)

热门文章

  1. Centos7编译安装nginx并设置反向代理
  2. Spring MVC同一方法返回JSON/XML格式
  3. Gevent简明教程
  4. bzoj4514[Sdoi2016]数字配对
  5. iOS 之 二维码生成与扫描(LBXScan)
  6. setContentView( )方法
  7. Android中多媒体处理【转】
  8. 请问一个表的update能同时触发两个触发器吗?
  9. JAVA基础知识(4)
  10. how to improve efficiency of graphic neural network?