码迷,mamicode.com
首页 > 其他好文 > 详细

hdu acm-step 2.1.3 相遇周期

时间:2017-08-19 22:29:11      阅读:182      评论:0      收藏:0      [点我收藏+]

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

 

hdu acm-step 2.1.3 相遇周期

标签:can   1.3   ace   efi   div   name   ges   names   个人   

原文地址:http://www.cnblogs.com/mtl6906/p/7397859.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!