ZOJ 3782 Ternary Calculation

来源:互联网 发布:域名注册哪家好 编辑:程序博客网 时间:2024/04/29 05:02

Description

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 "number1operatoranumber2operatorbnumber3". 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

51 + 2 * 31 - 8 / 31 + 2 - 37 * 8 / 55 - 8 % 3

Sample Output

7-10113

Note

The calculation "A % B" means taking the remainder of A divided by B, and "A / B" means taking the quotient.


题目大意就是优先级问题:

#include<stdio.h>#include<string.h>int main(){int a1[4],n;char c[3];while(~scanf("%d",&n)){while(n--){int s,m,o,k,l,i;s=m=o=k=0;scanf("%d %c %d %c %d",&a1[0],&c[0],&a1[1],&c[1],&a1[2]);if((c[0]=='+'||c[0]=='-')&&(c[1]=='*'||c[1]=='/'||c[1]=='%')){if(c[1]=='*')     s=a1[1]*a1[2];else if(c[1]=='/')s=a1[1]/a1[2];else s=a1[1]%a1[2];if(c[0]=='+')s+=a1[0];elses=a1[0]-s;printf("%d\n",s);}else{if(c[0]=='+')s=a1[1]+a1[0];else if(c[0]=='-')s=a1[0]-a1[1];else if(c[0]=='*')s=a1[0]*a1[1];else if(c[0]=='/')s=a1[0]/a1[1];else s=a1[0]%a1[1];if(c[1]=='+')s+=a1[2];else if(c[1]=='-')s-=a1[2];else if(c[1]=='*')s*=a1[2];else if(c[1]=='/')s/=a1[2];else s=s%a1[2];printf("%d\n",s);}}}}


0 0