站外题求助
  • 板块灌水区
  • 楼主Tania2013
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/9/27 20:08
  • 上次更新2024/9/27 21:42:31
查看原帖
站外题求助
1281317
Tania2013楼主2024/9/27 20:08

题目

题目描述 一个圆上有三个动点,都是顺时针绕着圆在运行。第一个点绕行一圈时间为 t1秒,第二个点绕行一圈时间为t2秒,第三个点绕行一圈时间为t3秒。t=0时三个点在同一个位置,问下一次三个点到同一个位置需要多少秒。用既约分数表示。

输入 第一行一个整数t1,第二行一个整数t2,第三行一个整数t3。

输出 一个分数,表示下一次三个点在同一个位置经过的秒数。

样例输入输出

样例输入 2 3 4 样例输出 12/1

样例说明 12秒后,三个动点分别绕行了6圈、4圈和3圈,在此期间三个动点不会在同一个位置。注意,即使答案是整数,也需要用分数形式表示。

样例输入 15 21 35 样例输出 105/2

样例输入 40 52 130 样例输出 520/3

数据范围 对于 12% 的数据,t3<=12。

另有 12% 的数据,t1=1。

对于 100% 的数据,1<=t1<t2<t3<=10000

我的代码

#include<bits/stdc++.h>
using namespace std;
//long long ans1,ans2;
int t1,t2,t3;
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);
	cin>>t1>>t2>>t3;
	long long d=t1*t2*t3,a=(t3-t1)*t2,b=(t2-t1)*t3;
	long long ans1=d,ans2=gcd(a,b);
	long long tmp=gcd(ans1,ans2);
	ans1/=tmp;
	ans2/=tmp;
	cout<<ans1<<"/"<<ans2;
    //fclose(stdin);
    //fclose(stdout);
}

样例全对了但是交上去不对,求大佬帮忙看看

2024/9/27 20:08
加载中...