HDOJ 1170 Balloon Comes!

题目地址:

http://acm.hdu.edu.cn/showproblem.php?pid=1170

要注意的有2点:

1.对于乘法时,可能会出现诸如: 9999*9999的。结果必然大于int的存储范围,所以用

__int64(a*b)输出。

2.对于除法,看清楚下面这句话:

The result should be rounded to 2 decimal places If and only if it is not an integer

不是除法就得安小数点2位输出的,对于可以整除的诸如2/1则就输出2.而1/2则输出0.50

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// HDOJ 1170
// Author: Tanky Woo
// Accepted 1170 0MS 192K 500 B 
#include <iostream>
int nCases;
int a, b;
char op;
double result;
int main()
{
	scanf("%d", &nCases);
	while(nCases--)
	{
		getchar();
		scanf("%c", &op);
		scanf("%d %d", &a, &b);
		if(op == '+')
			printf("%d\n", a+b);
		else if(op == '-')
			printf("%d\n", a-b);
		else if(op == '*')
			printf("%I64d\n", __int64(a*b));
		else if(op == '/')
		{
			if(a/b*b == a)
				printf("%d\n", a/b);
			else
				printf("%.2lf\n", double(a)/b);
		}
	}
	return 0;
}

发布者

Tanky Woo

Tanky Woo,[个人主页:https://tankywoo.com] / [新博客:https://blog.tankywoo.com]

发表评论

电子邮件地址不会被公开。 必填项已用*标注