简单题思维转化BestCoder
题意:给你a, b, c, d四个数,这几个数的范围都是大于0小于1000的整数,让比较 a ^b 和 c ^ d的大小。
这道题看着特别简单,但是当时就是做不出来,将近一个月没有做题了,手生了,不过看完题解之后,这个题还是挺简单的,关键就是一步转化就是两边同时取对数也就成为了b * log(a) 与 d * log(c)的大小比较,所以这样的话就在double的范围内了,不过还需注意一点就是有误差,不能完全正确的,因为在取对数的时候有个误差,所以要设置一个精度,代码如下:
1 #include <iostream> 2 #include <cmath> 3 using namespace std; 4 const double EPS = 1e-8;//精度 5 int main() 6 { 7 int a, b, c, d; 8 while (cin >> a >> b >> c >> d) 9 { 10 double t = b * log(a) - d * log(c); 11 if (fabs(t) < EPS) 12 cout << "=" << endl; 13 else 14 if (t > 0) 15 cout << ">" << endl; 16 else 17 cout << "<" << endl; 18 } 19 return 0; 20 }