打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
HDU 相遇周期
Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1501    Accepted Submission(s): 710
Problem Description
2007年3月26日,在中俄两国元首的见证下,中国国家航天局局长孙来燕与俄罗斯联邦航天局局长别尔米诺夫共同签署了《中国国家航天局和俄罗斯联邦航天局关于联合探测火星-火卫一合作的协议》,确定中俄双方将于2009年联合对火星及其卫星“火卫一”进行探测。
而卫星是进行这些探测的重要工具,我们的问题是已知两颗卫星的运行周期,求它们的相遇周期。
Input
输入数据的第一行为一个正整数T, 表示测试数据的组数. 然后是T组测试数据. 每组测试数据包含两组正整数,用空格隔开。每组包含两个正整数,表示转n圈需要的天数(26501/6335,表示转26501圈要6335天),用\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'隔开。
Output
            对于每组测试数据, 输出它们的相遇周期,如果相遇周期是整数则用整数表示,否则用最简分数表示。
Sample Input
226501/6335 18468/4229359/11479 15725/19170
Sample Output
81570078/75431415
Source
HDU 2007-Spring Programming Contest
Recommend
lcy

对于两个最简的分数 a / b, c / d 把他们两个的最小公倍数 x / y 也设为一个分数形式,那么这个 x 一定能够被 a , c整除, y 一定能够整除 b , d。那么要求得最小公倍数,那么肯定是分子尽量小,即 a , c 的最小公倍数, 分母尽量大, 即 b , d 的最大公约数。

#include#include#includeusingnamespace std;longlong a,b,c,d;longlong gcd(longlong m,longlong n){ return n==0?m:gcd(n,m%n);}longlong lcm(longlong m,longlong n){ return m/gcd(m,n)*n;}int main(){ //freopen('input.txt','r',stdin);int t; scanf('%d',&t); while(t--){ scanf('%I64d/%I64d %I64d/%I64d',&a,&b,&c,&d); longlong t; t=gcd(a,b); a/=t; b/=t; t=gcd(c,d); c/=t; d/=t; if(gcd(b,d)==1) printf('%I64d\n',lcm(a,c)); else printf('%I64d/%I64d\n',lcm(a,c),gcd(b,d)); } return0;}

标签: acm/icpc hdu
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
《程序员数学:最小公倍数》—— stackoverflow.com 提问:“如何计算最小公倍数”?
求最大公约数和最小公倍数,自顶向下,逐步求精的设计方法,函数
运算符号 mod / gcd / lcm
Excel最大公约数最小公倍数函数gcd和lcm
最大公约数和最小公倍数的算法
自学Excel之24:数学函数(一)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服