牛客五一day4 J.Fraction Comparision
Fraction Comparision
https://ac.nowcoder.com/acm/contest/33552/J
J.Fraction Comparision
一道简单()的数学计算题,最开始机智的我就想到了直接除是不可以的!于是我想到了交叉相乘法,于是wa了一发,于是又仔细想了一下,发现是高精度的问题,1e18*1
e10超了1e27,于是想到了整数和小数分开来判断的方法,即先用x/a,y/b判断整数部分的大小,如果大了或者小了就直接输出,如果相等则接着判断小数,小数也是分数,即余数除以除数,然后使用交叉相乘法即可完成判断
下附代码:
#include<bits/stdc++.h> using namespace std; int main() { unsigned long long x,y,a,b; while(cin>>x>>a>>y>>b) { if(x/a>y/b) cout<<">"<<endl; else if(x/a<y/b) cout<<"<"<<endl; else { if((x%a)*b<(y%b)*a) cout<<"<"<<endl; else if((x%a)*b>(y%b)*a) cout<<">"<<endl; else cout<<"="<<endl; } } }