hdu1713 相遇周期

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:水水更健康!





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值