1913: 小火山的计算能力
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 501 Solved: 134
SubmitStatusWeb Board
Description
别人说小火山的计算能力不行,小火山很生气,于是他想证明自己,现在有一个表达式,他想计算出来。
Input
首先是一个t(1<=20)表示测试组数。然后一个表达式,表达式长度不超过200,只有加法和减法,并且保证第一个字符不会是运算符号,最终结果小于2^63-1。
Output
输出运算结果。
Sample Input
21+12+1-1
Sample Output
22
模拟多个数相加,考思维,写代码能力;
代码:
#include<stdio.h>
#include<string.h>
char a[210];
int main()
{int t;scanf("%d",&t);while(t--){scanf("%s",a);int len=strlen(a);long long sum=0;int i,j;for(i=0;i<len;i++){if(a[i]!='+'&&a[i]!='-'){sum=sum*10+(a[i]-'0');//先把第一个数存到sum中; }else break;}long long c=0;//c是long long型的,因为它错了n次;int flag=1;//记录符号; for(j=i;j<=len;j++){if(a[j]=='-'||a[j]=='\0'){sum=sum+c*flag;//此时flag为当前数的上一个符号; flag=-1;//记录此时的符号; c=0; }else if(a[j]=='+'){sum+=c*flag;flag=1;c=0;}elsec=c*10+a[j]-'0';}printf("%lld\n",sum);}return 0;
}