地址: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
2
12+5/4-1
4*5/3
12
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[5],ans=0;
25         char op[5],c;
26         scanf("%lld",&num[1]);
27         if(scanf("%c",&c)==EOF||c=='\n')
28         {
29             printf("%lld\n",num[1]);continue;
30         }
31         op[2]=c;//3为当前操作数
32         scanf("%lld",&num[2]);
33         while(scanf("%c",&op[3])!=EOF && op[3]!='\n')
34         {
35             scanf("%lld",&num[3]);
36             if(op[3]=='*'||op[3]=='/')
37             {
38                 if(op[2]=='+'||op[2]=='-')
39                 {
40                     if(op[3]=='*')num[2]*=num[3];
41                     else num[2]/=num[3];
42
43                 }
44                 else
45                 {
46                     if(op[2]=='*') num[1]*=num[2];
47                     else num[1]/=num[2];
48                     num[2]=num[3];
49                     op[2]=op[3];
50                 }
51
52             }
53             else
54             {
55                 if(op[2]=='+'||op[2]=='-')
56                 {
57                     if(op[2]=='+') num[1]+=num[2];
58                     else num[1]-=num[2];
59                     num[2]=num[3];
60                     op[2]=op[3];
61                 }
62                 else
63                 {
64                      if(op[2]=='*') num[1]*=num[2];
65                      else   num[1]/=num[2];
66                      num[2]=num[3];
67                      op[2]=op[3];
68                 }
69             }
70         }
71         if(op[2]=='*')  ans=num[1]*num[2];
72             else if(op[2]=='/') ans=num[1]/num[2];
73             else if(op[2]=='+') ans=num[1]+num[2];
74             else    ans=num[1]-num[2];
75         printf("%lld\n",ans);
76     }
77
78     return 0;
79 }

View Code

转载于:https://www.cnblogs.com/weeping/p/5456145.html

cdoj 秋实大哥搞算数相关推荐

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

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

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

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

  3. CDOJ 1059 秋实大哥与小朋友(离散化)

    本文部分代码及思路来源于:http://www.cnblogs.com/Xiper/p/4470202.html 秋实大哥与小朋友 Time Limit: 3000/1000MS (Java/Othe ...

  4. cdoj 2015数据结构专题:D - 秋实大哥与战争

    男儿何不带吴钩,收取关山五十州. 征战天下是秋实大哥一生的梦想,所以今天他又在练习一个对战游戏. 秋实大哥命令所有士兵从左到右排成了一行来抵挡敌人的攻击. 敌方每一次会攻击一个士兵,这个士兵就会阵亡, ...

  5. 2015 UESTC 数据结构专题G题 秋实大哥去打工 单调栈

    秋实大哥去打工 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/59 Descr ...

  6. UESTC-1057 秋实大哥与花(线段树+成段加减+区间求和)

    秋实大哥与花 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit St ...

  7. E - 秋实大哥与战争

    秋实大哥与战争 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit S ...

  8. 2015 UESTC 数据结构专题H题 秋实大哥打游戏 带权并查集

    秋实大哥打游戏 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/59 Descr ...

  9. uestc 1073 秋实大哥与线段树 Label:线段树

    秋实大哥与线段树 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) "学 ...

最新文章

  1. 16个实用终端命令CLI
  2. python dlib学习(十):换脸
  3. 定义一个空切片_Python进阶:全面解读高级特性之切片
  4. 均衡教派服务器维护,LOL十大最坑大区盘点 LOL最坑服务器 均衡教派坐实榜首
  5. String、StringBuuffer、StringBuilder三者的区别
  6. 南开大学计算机学院课表,南开大学本科课程教学大纲.pdf
  7. 解决vi/vim中粘贴会在行首多很多缩进和空格的问题
  8. Python编写API接口
  9. python聊天室详细教程_Python基础教程书籍案例:在线聊天室(虚拟茶话会)【下】...
  10. php mysql begin_PHP mysqli_begin_transaction() 函数用法及示例
  11. 使用postman发送post请求下载文件
  12. python中倒背如流_倒背如流中倒背是什么意思古代有种背书方法是倒背,倒
  13. uestudio自动补全html代码,UEStudio Suite,强大的代码编辑工具套件
  14. templete_SPFA()
  15. 数据库逻辑结构设计阶段的4个工作步骤-
  16. 高效应用Python处理电子表格
  17. 简论数控机床的特点及发展趋势
  18. 软件管理测试工具-ALM/QC
  19. 学校教育教学说课PPT模板-优页文档
  20. Dr. Elephant大象医生安装文档

热门文章

  1. 条款20:为指针的关联容器指定比较类型
  2. 性能测试: 编写一个 Locust 文件
  3. Maven-Dependency Mechanism
  4. 李林APUE之进程的封装
  5. (LeetCode 141/142)Linked List Cycle
  6. 【一天一个shell命令】好管家-磁盘-du
  7. C# 2.0中泛型编程初级入门教程
  8. MYSQL 表锁情况查看
  9. MongoDB3.4 版本新节点同步的一点惊喜
  10. PHP开发环境配置:安装与配置Apache、PHP、MySQL、PhpMyAdmin