标签:can 1.3 ace efi div name ges names 个人
本题题意:给出两个卫星分数形式的速度,求它们的相遇周期。
#include <cstdio> #define ll long long using namespace std; ll gcd(ll a,ll b) { ll r; while(b) { r = a%b; a = b; b = r; } return a; } ll lcm(ll a,ll b) { return a*b/gcd(a,b); } int main() { int T; scanf("%d",&T); while(T--) { ll a,b,c,d; scanf("%lld/%lld%lld/%lld",&a,&b,&c,&d); a = a*d; c = c*b; ll p = lcm(a,c); ll q = b*d; if(p%q == 0)printf("%lld\n",p/q); else{ll t = gcd(p,q);printf("%lld/%lld\n",p/t,q/t);}; } return 0; }
这道题一到手我整个人都是懵的...相遇周期是啥,完全不懂。后来百度了才知道就是求最小倍数,不过是分数形式的.
首先把通分,然后求出分子的最小公倍数lcm,若lcm可以整除分母,那么打印整数结果,否则约分后输出分数结果。
标签:can 1.3 ace efi div name ges names 个人
原文地址:http://www.cnblogs.com/mtl6906/p/7397859.html