Complete the ternary calculation.
Input
There are multiple test cases. The first line of input contains an integer T indicating the number of test cases. For each test case:
There is a string in the form of "number1 operatora number2 operatorb number3". Each operator will be one of {'+', '-' , '*', '/', '%'}, and each number will be an integer in [1, 1000].
Output
For each test case, output the answer.
Sample Input
5 1 + 2 * 3 1 - 8 / 3 1 + 2 - 3 7 * 8 / 5 5 - 8 % 3
Sample Output
7 -1 0 11 3
Note
The calculation "A % B" means taking the remainder of A divided by B, and "A / B" means taking the quotient.
Author: ZHOU, Yuchen
Source: The 11th Zhejiang Provincial Collegiate Programming Contest
题意:给你一串算式,计算出答案
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <string>
#include <map>
#include <vector>
#include <queue>
#include <bitset>
#include <stack>
using namespace std;
int main()
{
char ch1,ch2;
int a,b,c;
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d %c %d %c %d",&a,&ch1,&b,&ch2,&c);
if(ch1=='+'||ch1=='-')
{
int ans;
if(ch2=='+') ans=b+c;
else if(ch2=='-') ans=b-c;
else if(ch2=='*') ans=b*c;
else if(ch2=='/') ans=b/c;
else ans=b%c;
if(ch1=='+') printf("%d\n",ans+a);
else
{
if(ch2=='-') printf("%d\n",a-b-c);
else if(ch2=='+') printf("%d\n",a-b+c);
else printf("%d\n",a-ans);
}
}
else
{
int ans;
if(ch1=='*') ans=a*b;
else if(ch1=='/') ans=a/b;
else if(ch1=='%') ans=a%b;
if(ch2=='+') printf("%d\n",ans+c);
else if(ch2=='-') printf("%d\n",ans-c);
else if(ch2=='*') printf("%d\n",ans*c);
else if(ch2=='/') printf("%d\n",ans/c);
else printf("%d\n",ans%c);
}
}
return 0;
}