Blog·Tanky WooABOUTRSS

HDOJ 1170 Balloon Comes!

27 Jul 2010
这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。

题目地址:

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

// HDOJ 1170
// Author: Tanky Woo
// Accepted 1170 0MS 192K 500 B 
#include 
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;
}