HDU 1713 相遇周期 — 欧几里得算法与最大公约数,最小公倍数
来源:互联网 发布:如何查询域名的有效期 编辑:程序博客网 时间:2024/06/05 15:56
这个题的叙述有点迷,个人的理解是首先要计算出一天之内转多少圈,然后找出相遇的时候最少要转多少圈。
所谓的周期的单位应该是“圈/天”,通过高中物理必修1讲过的单位制可以很容易地去理解这道题。
原题目实质上等价于求两个分数的最小公倍数。求最小公倍数的算法如下:首先将两个分数约分至既约分数,随后计算出两个分子的最小公倍数(LCM)赋给最终的分子,计算出两个分母的最大公约数(GCD),最后即可得到结果。
求最大公约数的一个经典算法就是Euclidean Algorithm(欧几里得算法),又称辗转相除法。
算法的逻辑非常清晰,简述成自然语言如下所示:
Input:任意两个整数x1、x2;
Process:x2的值赋给x1,计算x1 mod x2,将x1 mod x2的结果赋给x2;
Termination Condition:x2 == 0;
Output:x1.
递归代码如下(C++):
long long GCD(long long a, long long b) //最大公约{return b != 0 ? GCD(b, a%b) : a;}
求LCM的方法也比较简单,x1*x2/GCD(x1,x2)
这里没给出以上两种算法的详细证明,编者在数论方面的能力很一般,就不在这丢人了(23333),网上的很多大牛已经给出了非常完备的证明,大家可以尽情参考.
最后附上本题AC的代码,题目应该还是水题一道:
千万别忘了约分,之前两次没A都是因为没约分,感觉自己智商受到了极大碾压= =||
#include<iostream>using namespace std;//#include<cmath>long long GCD(long long a, long long b) //最大公约{return b != 0 ? GCD(b, a%b) : a;}long long LCM(long long a, long long b) //最小公倍{long long fractor = GCD(a, b);long long mulip = a*b;long long res = mulip / fractor;return res;}int main(){int n;long long x1, x2, x3, x4;char ch;cin >> n;long long factor;while (n--){cin >> x1;cin >> ch;cin >> x2;cin >> x3;cin >> ch;cin >> x4;while (factor = GCD(x1,x2), factor != 1){x1 /= factor;x2 /= factor;}while (factor = GCD(x3,x4), factor != 1){x3 /= factor;x4 /= factor;}long long nume = LCM(x1, x3);long long deme = GCD(x2, x4);if (nume % deme == 0){cout << (nume / deme) << endl;}else{cout << nume << "/" << deme << endl;}}system("pause");return 0;}
阅读全文
0 0
- HDU 1713 相遇周期 — 欧几里得算法与最大公约数,最小公倍数
- HDU 1713 相遇周期(数学 最大公约数与最小公倍数)
- 欧几里得算法--最大公约数&最小公倍数
- HDU 1713 相遇周期(求两个分数的最小公倍数)
- HDU 1713 相遇周期
- HDU - 1713 相遇周期
- HDU 1713 相遇周期
- HDU 1713 相遇周期
- HDU 1713 相遇周期
- HDU 1713 相遇周期
- HDU 1713 -相遇周期
- HDU-1713 相遇周期
- HDU-1713 相遇周期
- Hdu 1713 相遇周期
- [复习]欧几里得 最大公约数与最小公倍数
- 关于HDU 1713 相遇周期
- 欧几里得算法与最大公约数
- HDOJ 最小公倍数(欧几里得算法求最大公约数)
- kafka集群搭建(使用外部zookeeper集群环境方式)
- 分治法实现快包java带界面,
- 对话框设置背景图片
- 扩增子图表解读6韦恩图:比较组间共有和特有OTU或分类单元
- Binder解析
- HDU 1713 相遇周期 — 欧几里得算法与最大公约数,最小公倍数
- iOS UICollectionView详解
- 在Docker Toolbox 终端中使用 vboxmanage.exe 程序在宿主机和虚拟机之间创建共享目录
- 小米Git
- 数学归纳法在数据结构与算法分析设计中的应用
- HDU 1455 Sticks(dfs+强剪枝)
- HDU5456 Matches Puzzle Game[数位DP]
- 复数类:class Complex
- 熊大UWB系列教程一: DW1000 超宽带系统简介及最小系统搭建