您的位置:首页 > 其它

BestCoder Round#29 1001 GTY's math problem

2015-03-15 10:51 351 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5170

其实思路不难,若想比较这两个数,直接快速幂的话会爆数,所以可以取对数比较。

因为对数计算后得到的数为浮点数,则接下来就是浮点数比较大小的问题了。

有浮点数a,b。

a==b,则fabs(a-b)<ESP

a>b,则a-b>ESP

a<b,则b-a>ESP

代码如下

#include <iostream>
    #include <iomanip>
    #include <cstdio>
    #include <algorithm>
    #include <cmath>
    #include <queue>
    #include <vector>
    #include <stack>
    #include <string>
    #include <cstring>
    using namespace std;

    const int maxn=222222;
    const int INF=0x7fffffff;
    #define LSON l,m,rt<<1
    #define RSON m+1,r,rt<<1|1
    #define ESP 1e-7

    double hanshu(int a, int b) {
        return 1.0*b*log((double)a);
    }

    int main() {
    int a,b,c,d;
    while(scanf("%d%d%d%d", &a, &b, &c, &d)!=EOF) {
            double x=hanshu(a, b), y=hanshu(c, d);
            if(fabs(x-y)<ESP) puts("=");
            else if(x-y>ESP) puts(">");
            else puts("<");
        }
        return 0;
    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: