hdu1713 相遇周期

来源:互联网 发布:福州淘宝模特 编辑:程序博客网 时间:2024/05/17 21:47

hdu1713   相遇周期                 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1713

数学水

题目大意:两飞船绕同一星球沿同一方向飞,知道它们各自的周期(转多少圈要多少天),求相遇周期。

题目分析:已知两飞船周期,求相遇周期,即为求两数的最小公倍数。输入的两个分数是飞船速度,要变成周期需倒过来看,接下来的任务就是求两个分数的最小公倍数了。和整数一样,分数的最小公倍数等于两数乘积除以它们的最大公约数。最大公约数的求法是 两数分子的最大公约数 / 两数分母的最小公倍数。

以下是代码:

#include <stdio.h>int gcd(int a,int b){return b==0?a:gcd(b,a%b);}int main(){int n,q1,q2,t1,t2,g,q,x;scanf("%d",&n);while(n--){scanf("%d/%d %d/%d",&q1,&t1,&q2,&t2);g=gcd(q1,q2);q=q1/g*q2;t1*=q2/g;t2*=q1/g;g=gcd(t1,t2);x=gcd(q,g);q/=x;g/=x;if(g-1)printf("%d/%d\n",q,g);else printf("%d\n",q);}    return 0;}

PS:水水更健康!





原创粉丝点击