站外题求助
  • 板块灌水区
  • 楼主Tania2013
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/9/26 23:07
  • 上次更新2024/9/27 13:18:54
查看原帖
站外题求助
1281317
Tania2013楼主2024/9/26 23:07

题目链接 我的代码

#include<bits/stdc++.h>
using namespace std;
long long ans1,ans2;
int gcd(int a, int b) 
{
    if (b == 0)
        return a;
    else
        return gcd(b, a % b);
}
int gcd3(int a, int b, int c) 
{
    return gcd(gcd(a, b), c);
}
int lcm(int a, int b) 
{
    return (a * b) / gcd(a, b);
}
int lcm3(int a, int b, int c) 
{
    int lcm_ab = lcm(a, b);
    return lcm(lcm_ab, c);
}
int main()
{
	//freopen("circle.in","r",stdin);
	//freopen("circle.out","w",stdout);
	int t1,t2,t3;
	cin>>t1>>t2>>t3;
	long long a1=t2-t1,a2=t3-t2,a3=t3-t1,b1=t1*t2,b2=t2*t3,b3=t1*t3;
	a1=a1/gcd(a1,b1);
	b1=a1/gcd(a1,b1);
	
	a2=a2/gcd(a2,b2);
	b2=a2/gcd(a2,b2);
	
	a3=a3/gcd(a3,b3);
	b3=a3/gcd(a3,b3);
	
	ans1=lcm3(b1,b2,b3);
	ans2=gcd3(a1,a2,a3);
	
	ans1=ans1/gcd(ans1,ans2);
	ans2=ans2/gcd(ans1,ans2);
	
	cout<<ans1<<"/"<<ans2;
    //fclose(stdin);
    //fclose(stdout);
}

推理过程 圆1速度是t1分之1,圆2速度是t2分之1,圆3速度是t3分之1.圆1追上圆2的速度(a1=t2-t1)分之(b1=t1t2)然后a1和b1通下分,然后以此类推,最后把所有的分数做最大公倍数,然后通下分,然后输出

我自己推的,感觉推的没啥问题,求大佬帮忙改一下

2024/9/26 23:07
加载中...