P4057 [Code+#1]晨跑(数学分析,辗转相除法模板(欧几里得算法))

简介: P4057 [Code+#1]晨跑(数学分析,辗转相除法模板(欧几里得算法))

题目描述



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


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


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


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


输入格式



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


输出格式



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


输入输出样例



输入

2 3 5


输出  

30


输入  

3 4 6


输出

12


输入

10 100 1000


输出  

1000


思路,我们可以先2个数的最大公约数算出来,然后就可以得到最小公倍数,最后联立3个数,


当我们用最大公约数的时候我们想到了辗转相除法


1997 / 615 = 3 (余 152)

615 / 152 = 4(余7)

152 / 7 = 21(余5)

7 / 5 = 1 (余2)

5 / 2 = 2 (余1)

2 / 1 = 2 (余0)

至此,最大公约数为1


大概是这样的流程。

具体实现看代码。

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;//头文件
long long a,b,c;//三个晨跑的人(周期)
long long gcd(long long x,long long y){//辗转相除求最大公约数
  if (x%y==0){
    return y;
  }
  return gcd(y,x%y);//重点
}
long long lcm(long long x,long long y){//最小公倍数(用GCD求)
  return x*y/gcd(x,y);
} 
int main()
{
  scanf ("%lld%lld%lld",&a,&b,&c);//读入
  long long ans=0;
  ans=lcm(a,lcm(b,c));//直接求答案
  cout<<ans<<endl;//输出
}


相关文章
|
7月前
|
算法
Hierholzer算法dfs找欧拉回路模板
Hierholzer算法dfs找欧拉回路模板
75 0
|
存储 算法 决策智能
(万字,细细阅读)竞赛算法入门必经算法模型(附带题目链接和模板)(下)
(万字,细细阅读)竞赛算法入门必经算法模型(附带题目链接和模板)(下)
85 0
|
算法 C++ 容器
(万字,细细阅读)竞赛算法入门必经算法模型(附带题目链接和模板)(上)
(万字,细细阅读)竞赛算法入门必经算法模型(附带题目链接和模板)(上)
53 0
|
算法 C++ 索引
函数模板和类模板 知识点总结 C++程序设计与算法笔记总结(七) 北京大学 郭炜(下)
函数模板和类模板 知识点总结 C++程序设计与算法笔记总结(七) 北京大学 郭炜(下)
49 0
|
4月前
|
算法
【算法】前缀和——二维前缀和模板题
【算法】前缀和——二维前缀和模板题
|
4月前
【刷题记录】最大公因数,最小公倍数(辗转相除法、欧几里得算法)
【刷题记录】最大公因数,最小公倍数(辗转相除法、欧几里得算法)
|
6月前
|
算法 Java 数据处理
Java算法模板 数据流快读
Java算法模板 数据流快读
43 2
|
5月前
|
设计模式 JavaScript 算法
vue2 原理【详解】MVVM、响应式、模板编译、虚拟节点 vDom、diff 算法
vue2 原理【详解】MVVM、响应式、模板编译、虚拟节点 vDom、diff 算法
180 0
|
6月前
|
算法 前端开发 安全
C++算法模板
C++算法模板
34 0
|
7月前
|
算法 数据安全/隐私保护
什么是扩展欧几里得算法?
【5月更文挑战第13天】什么是扩展欧几里得算法?
115 3