小火山的计算能力

来源:互联网 发布:关闭windows错误恢复 编辑:程序博客网 时间:2024/04/27 19:25

Problem J: 小火山的计算能力

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 457  Solved: 113

SubmitStatusWeb Board

Description

别人说小火山的计算能力不行,小火山很生气,于是他想证明自己,现在有一个表达式,他想计算出来。

Input

首先是一个t(1<=20)表示测试组数。然后一个表达式,表达式长度不超过200,只有加法和减法,并且保证第一个字符不会是运算符号,最终结果小于2^63-1。

Output

输出运算结果。

Sample Input

21+12+1-1

Sample Output

22


需要用字符串来输入,可以先找到第一个整数,因为题中给的数不一定是个位的,所以要经行判断,另外需要用flag判断需要加的一个数是正是负,一直判断到'\0'结束,要用long long  和lld进行输入输出。


#include<cstdio>#include<cstring>#include<algorithm>using namespace std; int main(){int t;char c[205];scanf("%d",&t);while(t--){long long sum=0,a;int n,flag,i;scanf("%s",c);n=strlen(c);sum=c[0]-'0';for(i=1;i<n;i++){if(c[i]!='-'&&c[i]!='+'){sum=sum*10+c[i]-'0';}else break;   }    a=0;    if(c[i]=='-')  flag=-1;    else flag=1;for(i=i;i<=n;i++){if((c[i]=='-'||c[i]=='\0')){    sum=sum+a*flag;flag=-1;a=0;}else if(c[i]=='+'){sum=sum+a*flag;flag=1;a=0;}else a=a*10+(c[i]-'0');}printf("%lld\n",sum);}return 0;}




0 0
原创粉丝点击