Code+ A 晨跑三个数的最小公倍数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Code+ A 晨跑三个数的最小公倍数相关的知识,希望对你有一定的参考价值。

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述

“无体育,不清华”、“每天锻炼一小时,健康工作五十年,幸福生活一辈子”

在清华,体育运动绝对是同学们生活中不可或缺的一部分。为了响应学校的号召,模范好学生王队长决定坚持晨跑。不过由于种种原因,每天都早起去跑步不太现实,所以王队长决定每a天晨跑一次。换句话说,假如王队长某天早起去跑了步,之后他会休息a-1天,然后第a天继续去晨跑,并以此类推。

王队长的好朋友小钦和小针深受王队长坚持锻炼的鼓舞,并决定自己也要坚持晨跑。为了适宜自己的情况,小钦决定每b天早起跑步一次,而小针决定每c天早起跑步一次。

某天早晨,王队长、小钦和小针在早起跑步时相遇了,他们非常激动、相互鼓励,共同完成了一次完美的晨跑。为了表述方便,我们把三位同学相遇的这天记为第0天。假设三位同学每次晨跑的时间段和路线都相同,他们想知道,下一次三人在跑步时相遇是第几天。由于三位同学都不会算,所以希望由聪明的你来告诉他们答案。

输入描述:

输入共一行,包含三个正整数a,b,c,表示王队长每隔a天晨跑一次、小钦每隔b天晨跑一次且小针每隔c天晨跑一次。

输出描述:

输出共一行,包含一个正整数x,表示三位同学下次将在第x天相遇。
示例1

输入

2 3 5

输出

30

备注:

1≤a,b,c≤100000

【分析】:防爆int,都用LL
【代码】:
技术分享图片
#include <bits/stdc++.h>

using namespace std;
#define LL long long
int main()
{
    LL a,b,c;
    LL ans;
    while(cin>>a>>b>>c)
    {
        ans=a/__gcd(a,b)*b;
        ans=ans/__gcd(ans,c)*c;
        cout<<ans<<endl;
    }
    return 0;
}
爱不释手__gcd()

 

以上是关于Code+ A 晨跑三个数的最小公倍数的主要内容,如果未能解决你的问题,请参考以下文章

BZOJ5105: [CodePlus2017]晨跑

P2153 [SDOI2009]晨跑(最小费用最大流)

BZOJ 1877SDOI 2009晨跑

[SDOI 2009] 晨跑

code vs 1245 最小的N个和

[bzoj1877]晨跑