题目大致意思是三个人三个速度v1,v2,v3,操场周长为L问三个人相遇n次需要多少时间
方法很简单,用L/fabs(v1-v2)求第一个和第二个人相遇所需时间同理求第一个和第三个人相遇所需时间。最后求lcm。要注意,除出来的数可能是小数,所以要对这两个数同乘
fabs(v1-v2)*fabs(v1-v3)求出最小公倍数后再除掉
#include<bits/stdc++.h>
using namespace std;
#define pi acos(-1)
int main()
{
int t;
int l,v1,v2,v3,n;
double t12,t13;
double ans;
scanf("%d",&t);
while(t--) {
scanf("%d%d%d%d%d",&n,&l,&v1,&v2,&v3);
if(v1==v2) t12=0; else t12=(double)l/(double)fabs(v1-v2);
if(v1==v3) t13=0; else t13=(double)l/(double)fabs(v1-v3);
if(t12==0||t13==0) ans=(t12+t13)*n;
else {
int x1=l*fabs(v1-v3);
int x2=l*fabs(v1-v2);
int xxx=x1*x2/__gcd(x1,x2);
ans=(double)n*(double)xxx/(fabs(v1-v3)*fabs(v1-v2));
}
printf("%.2lf\n",ans);
}
return 0;
}