地址: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无数次

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

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

 #include <iostream>
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <queue>
#include <stack>
#include <map>
#include <vector>
#include <cstdlib>
#include <string> #define PI acos((double)-1)
#define E exp(double(1))
using namespace std; int main (void)
{
int t;
cin>>t;
getchar();
while(t--)
{
long long num[],ans=;
char op[],c;
scanf("%lld",&num[]);
if(scanf("%c",&c)==EOF||c=='\n')
{
printf("%lld\n",num[]);continue;
}
op[]=c;//3为当前操作数
scanf("%lld",&num[]);
while(scanf("%c",&op[])!=EOF && op[]!='\n')
{
scanf("%lld",&num[]);
if(op[]=='*'||op[]=='/')
{
if(op[]=='+'||op[]=='-')
{
if(op[]=='*')num[]*=num[];
else num[]/=num[]; }
else
{
if(op[]=='*') num[]*=num[];
else num[]/=num[];
num[]=num[];
op[]=op[];
} }
else
{
if(op[]=='+'||op[]=='-')
{
if(op[]=='+') num[]+=num[];
else num[]-=num[];
num[]=num[];
op[]=op[];
}
else
{
if(op[]=='*') num[]*=num[];
else num[]/=num[];
num[]=num[];
op[]=op[];
}
}
}
if(op[]=='*') ans=num[]*num[];
else if(op[]=='/') ans=num[]/num[];
else if(op[]=='+') ans=num[]+num[];
else ans=num[]-num[];
printf("%lld\n",ans);
} return ;
}

最新文章

  1. 免费的 Photoshop Apple Watch 原型设计素材
  2. oracle11g空表不能导出记录
  3. 【转载】Android通过ksoap2调用.net(c#)的webservice
  4. Android Studio 单刷《第一行代码》系列 04 —— Activity 相关
  5. Unity3D 之防止刚体碰撞导致旋转
  6. Effective C++ 第二版 1)const和inline 2)iostream
  7. 笔记整理——使用openssl编程
  8. hadoop入门,跑出第一个WordCount
  9. Java多线程简介
  10. vuex的一些学习
  11. Linux服务器运维基本命令
  12. 浅谈Vue之双向绑定
  13. 一本通1585【例 1】Amount of Degrees
  14. SpringMVC学习笔记:数据的接收与返回
  15. 关于Cocos2d-x的粒子系统
  16. Zookeeper异常org.apache.zookeeper.KeeperException$ConnectionLossException
  17. linux下创建具有root权限的账户
  18. 【angular5项目积累总结】优秀组件以及应用实例
  19. [ASK] brew install nginx
  20. Eclipse下无法解析注解:@Getter和@Setter

热门文章

  1. ACM/ICPC Moscow Prefinal 2019 趣题记录
  2. Wise 打包细节
  3. 说说常见的几个js疑难点
  4. WPF通过异常来验证用户输入
  5. 【转】Windows Dump文件获取
  6. Eclipse Android 代码自己主动提示功能
  7. centos使用pypy
  8. Duilib教程-非DUI控件
  9. springboot2.1.1 中集成websocket 单元测试异常
  10. Leetcode-Convert Sorted List to BST.