HDU 1170 Balloon Comes!

Balloon Comes!

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 20356    Accepted Submission(s): 7673


Problem Description
The contest starts now! How excited it is to see balloons floating around. You, one of the best programmers in HDU, can get a very beautiful balloon if only you have solved the very very very... easy problem.
Give you an operator (+,-,*, / --denoting addition, subtraction, multiplication, division respectively) and two positive integers, your task is to output the result. 
Is it very easy?

 
Come on, guy! PLMM will send you a beautiful Balloon right now!
Good Luck!

 

Input
Input contains multiple test cases. The first line of the input is a single integer T (0<T<1000) which is the number of test cases. T test cases follow. Each test case contains a char C (+,-,*, /) and two integers A and B(0<A,B<10000).Of course, we all know that A and B are operands and C is an operator. 
 

Output
For each case, print the operation result. The result should be rounded to 2 decimal places If and only if it is not an integer.
 

Sample Input
4 + 1 2 - 1 2 * 1 2 / 1 2
 

Sample Output
3 -1 2 0.50





解题思路:水。直接的就是简单的四则运算。只是要注意,最大的坑在于:当两数相除时。若能整除,则要输出整数,否则输出两位小数。




AC代码:

#include <iostream>
#include <cstdio>
using namespace std;

int main(){
//	freopen("in.txt", "r", stdin);
		int n, a, b;
		char p[2];
		scanf("%d", &n);
		for(int i=0; i<n; i++){
			scanf("%s", p);
			scanf("%d%d", &a, &b);
			if(p[0] == '-') printf("%d
", a-b);
			else if(p[0] == '+') printf("%d
", a+b);
			else if(p[0] == '*') printf("%d
", a*b);
			else{
				if(a%b) printf("%.2f
", a*1.0/b);
				else printf("%d
", a/b);
			}  
		}
	return 0;
}



原文地址:https://www.cnblogs.com/wzzkaifa/p/6773331.html