hdu acm-step 2.1.3 相遇周期

Posted mtl6906

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu acm-step 2.1.3 相遇周期相关的知识,希望对你有一定的参考价值。

  本题题意:给出两个卫星分数形式的速度,求它们的相遇周期。

  

#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可以整除分母,那么打印整数结果,否则约分后输出分数结果。

 

以上是关于hdu acm-step 2.1.3 相遇周期的主要内容,如果未能解决你的问题,请参考以下文章

hdu acm-step 1.3.4 Saving HDU

hdu acm-step 1.3.7 排列2

hdu acm-step 2.1.7 Balloon Comes!

hdu acm-step 1.3.6 Wooden Sticks

hdu acm-step 2.1.1 最小公倍数

hdu acm-step 1.3.1 Moving Tables