Eyad was given a simple math problem, but since he is very bad at math he asked you to help him.
Given 4 numbers, a, b, c, and d. Your task is to find whether ab is less than cd or not.
It is guaranteed that the two numbers above are never equal for the given input.
The first line contains an integer T (1 ≤ T ≤ 105), where T is the number of test cases.
Then T lines follow, each line contains four integers a, b, c, and d (1 ≤ a, b, c, d ≤ 109).
For each test case, print a single line containing "<" (without quotes), if ab is less than cd. Otherwise, print ">" (without quotes).
29 2 5 33 4 4 3
<>
这个题,emnnn,眼瞎,这么大的数,快速幂也跑爆啊。。。中学时代的换底公式,6的飞起。。。
a的b次方假设为x,求对数为logax=b,换成以10为底的,就是lnx为b*lna,同理c的d次方。水题水题。。。
代码:
1 //H. Eyad and Math-对数,换底公式-快速幂会爆啊啊啊啊啊啊 2 #include<iostream> 3 #include<cstring> 4 #include<cstdio> 5 #include<cmath> 6 #include<algorithm> 7 using namespace std; 8 int main(){ 9 int t; 10 while(~scanf("%d",&t)){ 11 int a,b,c,d; 12 while(t--){ 13 scanf("%d%d%d%d",&a,&b,&c,&d); 14 double ans1=b*log10(a); 15 double ans2=d*log10(c); 16 if(ans1<ans2)printf("<\n"); 17 else printf(">\n"); 18 } 19 } 20 return 0; 21 }