简单题思维转化BestCoder

时间:2023-12-13 16:07:26

题意:给你a, b, c, d四个数,这几个数的范围都是大于0小于1000的整数,让比较 a ^b 和 c ^ d的大小。

这道题看着特别简单,但是当时就是做不出来,将近一个月没有做题了,手生了,不过看完题解之后,这个题还是挺简单的,关键就是一步转化就是两边同时取对数也就成为了b * log(a) 与 d * log(c)的大小比较,所以这样的话就在double的范围内了,不过还需注意一点就是有误差,不能完全正确的,因为在取对数的时候有个误差,所以要设置一个精度,代码如下:

 #include <iostream>
#include <cmath>
using namespace std;
const double EPS = 1e-;//精度
int main()
{
int a, b, c, d;
while (cin >> a >> b >> c >> d)
{
double t = b * log(a) - d * log(c);
if (fabs(t) < EPS)
cout << "=" << endl;
else
if (t > )
cout << ">" << endl;
else
cout << "<" << endl;
}
return ;
}