HDU 5170 GTY's math problem
数学题,a的b次方和c的d次方都很大,直接判断是做不出来的。
如果我们能找到一个函数F(x)是单调的,而F(X)的值又比较好算,那么可以通过比较F(X)的大小来判断自变量的大小。
令F(X)=log(X),a的b次方和c的d次方当做自变量。
那么接下来只要判断log(a的b次方)和log(c的d次方)的大小就可以判断a的b次方和c的d次方的大小了。
而log(a的b次方)=b*log(a),log(c的d次方)=d*log(c),很容易计算。
判断相等的时候注意一下精度问题。
#include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; double a,b,c,d; int main() { while(~scanf("%lf%lf%lf%lf",&a,&b,&c,&d)){ double ans1=b*log(a); double ans2=d*log(c); if(fabs(ans1-ans2)<0.000001) printf("=\n"); else if(ans1>ans2) printf(">\n"); else printf("<\n"); } return 0; }