Ternary Calculation(也不用栈,注意输入方式即可,直接解决)
2016-04-19 23:01
369 查看
Ternary Calculation
Time Limit: 2000msMemory Limit: 65536KB
64-bit integer IO format: %lld Java class name:
Main
Submit
Status
Complete the ternary calculation.
Input
There are multiple test cases. The first line of input contains an integerT 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
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 ofA divided by B, and "A / B" means taking the quotient.
#include<stdio.h>
int num[4];
char ch[3];
void input()
{
scanf("%d",&num[1]);
getchar();
scanf("%c",&ch[1]);
scanf("%d",&num[2]);
getchar();
scanf("%c",&ch[2]);
scanf("%d",&num[3]);
}
int compute(int a,char op,int b)
{
switch(op)
{
case'+':return a+b;break;
case'-':return a-b;break;
case'*':return a*b;break;
case'/':return a/b;break;
case'%':return a%b;break;
}
}
char precede(char a,char b)
{
if(a=='+'||a=='-')
{
if(b=='*'||b=='/'||b=='%')
return '<';
else
return '=';
}
else
{
if(b=='*'||b=='/'||b=='%')
return '=';
else
return '>';
}
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int m,s;
input();
switch(precede(ch[1],ch[2]))
{
case '>':m=compute(num[1],ch[1],num[2]);
s=compute(m,ch[2],num[3]);
break;
case'=':m=compute(num[1],ch[1],num[2]);
s=compute(m,ch[2],num[3]);
break;
case'<':m=compute(num[2],ch[2],num[3]);
s=compute(num[1],ch[1],m);
break;
}
printf("%d\n",s);
}
return 0;
}
相关文章推荐
- LintCode_1_A + B 问题
- 【SSH进阶之路】Struts + Spring + Hibernate 进阶开端(一)
- 新编日语第四册(修订版)第03课 应用文
- 电子相册系统(七)查看原图
- Could not find class 'org.jivesoftware.smackx.PrivateDataManager$PrivateDataIQProvider', r
- 作业5
- 计算机界面
- LINQ之路 9:LINQ to SQL 和 Entity Framework(上)
- leetcode 46,47. Permutations I/II 全排列问题 java
- 降低Winform占用系统内存的方法-将物理内存的占用挪到虚拟内存里
- 降低Winform占用系统内存的方法-将物理内存的占用挪到虚拟内存里
- 降低Winform占用系统内存的方法-将物理内存的占用挪到虚拟内存里
- 降低Winform占用系统内存的方法-将物理内存的占用挪到虚拟内存里
- 降低Winform占用系统内存的方法-将物理内存的占用挪到虚拟内存里
- 降低Winform占用系统内存的方法-将物理内存的占用挪到虚拟内存里
- 降低Winform占用系统内存的方法-将物理内存的占用挪到虚拟内存里
- 降低Winform占用系统内存的方法-将物理内存的占用挪到虚拟内存里
- 降低Winform占用系统内存的方法-将物理内存的占用挪到虚拟内存里
- 降低Winform占用系统内存的方法-将物理内存的占用挪到虚拟内存里
- 降低Winform占用系统内存的方法-将物理内存的占用挪到虚拟内存里