地址:http://acm.uestc.edu.cn/#/contest/show/95

题目:

N - 秋实大哥搞算数

Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others)
Submit Status

秋实大哥大学物理挂科了(误),于是在下学期的前两周的某一天要悲剧的补考。为了不给学校的挖掘机大楼做贡献,秋实大哥决定在假期里努力复习。当然,良好的计算能力也是非常必要的,毕竟是涉及计算自己做多少分的题能够通过考试的问题。现在他给自己出了一大堆长长的只有涉及整形四则运算式子,然后埋头计算结果。为了检验自己的计算能力,他请你来帮忙。

Input

第一行一个整数T,表示式子的总数。

接下来每一行有一个长度不超过10^6的表达式,只包含正整数和四则运算符号('+', '-', '*', '/')。

保证输入合法。

Output

对于每一个表达式,输出相应的结果,占一行。

保证运算及结果在long long范围以内。

Sample input and output

Sample Input Sample Output
  1. 2
  2. 12+5/4-1
  3. 4*5/3
  1. 12
  2. 6

思路:

,,wa次数最多的题目,,一开始没判\r(第一见要判这个的,涨姿势了),,,wa无数次

然后智商不够,用栈搞不出来,又只能自己想了。。。。。。

我的做法是对答案有影响的就三个操作符,当前读取的操作符,和前两个,然后对所有情况分类讨论,,,这样就可以在读取的时候做的一边读取一边计算了。。。

  1. #include <iostream>
  2. #include <algorithm>
  3. #include <cstdio>
  4. #include <cmath>
  5. #include <cstring>
  6. #include <queue>
  7. #include <stack>
  8. #include <map>
  9. #include <vector>
  10. #include <cstdlib>
  11. #include <string>
  12.  
  13. #define PI acos((double)-1)
  14. #define E exp(double(1))
  15. using namespace std;
  16.  
  17. int main (void)
  18. {
  19. int t;
  20. cin>>t;
  21. getchar();
  22. while(t--)
  23. {
  24. long long num[],ans=;
  25. char op[],c;
  26. scanf("%lld",&num[]);
  27. if(scanf("%c",&c)==EOF||c=='\n')
  28. {
  29. printf("%lld\n",num[]);continue;
  30. }
  31. op[]=c;//3为当前操作数
  32. scanf("%lld",&num[]);
  33. while(scanf("%c",&op[])!=EOF && op[]!='\n')
  34. {
  35. scanf("%lld",&num[]);
  36. if(op[]=='*'||op[]=='/')
  37. {
  38. if(op[]=='+'||op[]=='-')
  39. {
  40. if(op[]=='*')num[]*=num[];
  41. else num[]/=num[];
  42.  
  43. }
  44. else
  45. {
  46. if(op[]=='*') num[]*=num[];
  47. else num[]/=num[];
  48. num[]=num[];
  49. op[]=op[];
  50. }
  51.  
  52. }
  53. else
  54. {
  55. if(op[]=='+'||op[]=='-')
  56. {
  57. if(op[]=='+') num[]+=num[];
  58. else num[]-=num[];
  59. num[]=num[];
  60. op[]=op[];
  61. }
  62. else
  63. {
  64. if(op[]=='*') num[]*=num[];
  65. else num[]/=num[];
  66. num[]=num[];
  67. op[]=op[];
  68. }
  69. }
  70. }
  71. if(op[]=='*') ans=num[]*num[];
  72. else if(op[]=='/') ans=num[]/num[];
  73. else if(op[]=='+') ans=num[]+num[];
  74. else ans=num[]-num[];
  75. printf("%lld\n",ans);
  76. }
  77.  
  78. return ;
  79. }

cdoj 秋实大哥搞算数的更多相关文章

  1. UESTC 1074 秋实大哥搞算数 栈模拟

    秋实大哥搞算数 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit S ...

  2. UESTC_秋实大哥搞算数 2015 UESTC Training for Data Structures<Problem N>

    N - 秋实大哥搞算数 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Subm ...

  3. 2015 UESTC 数据结构专题N题 秋实大哥搞算数 表达式求值/栈

    秋实大哥搞算数 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1074 Des ...

  4. cdoj 秋实大哥与战争

    首先,显然每个区间的最长连续子区间要么在左孩子里,要么在右孩子里,要么跨越两个孩子.于是我们可以对每个区间维护如下信息ll(left long),rl(rigth long),ml(mid long) ...

  5. cdoj 秋实大哥带我飞 最短路走法 含0权边

    //做完这题以后终于理解白书上的边为什么要那样定义了 可以很方便的在o(1) 时间内找到反向边 解法:先跑一边最短路,然后检查最短路上有没有0权边(dfs就好,但是每条边只能走一次,这里就需要用异或找 ...

  6. CDOJ 1146 A - 秋实大哥与连锁快餐店 最小生成树 Prim算法 稠密图

    题目链接 A - 秋实大哥与连锁快餐店 Time Limit:3000MS     Memory Limit:65535KB     64bit IO Format:%lld & %llu S ...

  7. CDOJ 1070 秋实大哥打游戏 带权并查集

    链接 F - 秋实大哥打游戏 Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:%lld & %llu Submit ...

  8. CDOJ 1069 秋实大哥去打工 单调栈 下标处理

    E - 秋实大哥去打工 Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:%lld & %llu Submit St ...

  9. CDOJ 1061 C - 秋实大哥与战争 STL set 迭代器

    题目链接: C - 秋实大哥与战争 Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:%lld & %llu Sub ...

随机推荐

  1. js 控制按钮点击后不可用

    <input type="button" id="btn" value="免费获取验证码" /> <script type ...

  2. .NET平台下 极光推送

    正好看到别人发了个极光的推送例子,想来前面也刚做过这个,就把我的push类共享下 public class JPush { /// <summary> /// push信息到手机应用上 J ...

  3. 请写出一段JavaScript代码,要求页面有一个按钮,点击按钮弹出确认框。程序可以判断出用

    请写出一段JavaScript代码,要求页面有一个按钮,点击按钮弹出确认框.程序可以判断出用 户点击的是“确认”还是“取消”. 解答: <HTML> <HEAD> <TI ...

  4. java web学习笔记-jsp篇

    1.java web简介 1.1静态页面与动态页面   表现形式 所需技术 静态网页 网页内容固定,不会更新 html,css 动态网页 网页内容由程序动态显示,自动更新 html,css,DB,ja ...

  5. MFC中CString转换成char数组的问题

    由于结构体中用到联合体(联合体需要确定分配内存分配大小)或其它因素,需要用char数组来保存字符串,但是在MFC中一般都是用CString来存放字条串.关于它们之间的转换,在VS2008中有时会出现异 ...

  6. git上解决代码冲突(merge版)

    1.切换到master: git checkout master 2.拉最新代码:git pull origin master 3.切换到提交的分支:git checkout Txxxx 4.合并:g ...

  7. Oozie安装与部署

    原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/3885162.html 安装基础环境: Hadoop – 2.2.0  Linux – Centos 6. ...

  8. React课程学习

    http://guoyongfeng.github.io/idoc/index.html

  9. python入门(四):标准输出和文件读写

    Python输出 1.表达式语句 str(): 函数返回一个用户易读的表达形式,可以使用 str.format() 函数来格式化输出值. repr(): 产生一个解释器易读的表达形式. 2.print ...

  10. Activity公用跳转到主Activity

    public class VSession { private VSession() { } public static VSession getInstance() { if (session == ...