在 Python 中查找两个数字的移位表之间的最小差值
假设我们有两个数字 p 和 q,我们需要找到 p 和 q 的无限移位表中任意项之间的最小差值,这些移位分别为 r 和 s,其中 r、s >= 0。
因此,如果输入类似于 p = 7 和 q = 17,r = 6 和 s = 3,则输出将为 0,因为 7 的倍数表为 [7, 14, 21, 28, 35, 42, 49, ...],而 17 的倍数表为 [17, 34, 51, 68, 85, 102, 119, ...],则 7 的移位表将为 [13, 20, 27, 34, 41, 48, 55, ...],而 17 的移位表将为 [20, 37, 54, 71, 88, 105, 121, ...],则这些移位表中两项之间的最小差值为 20-20 = 0。
为了解决这个问题,我们将遵循以下步骤:
g := (p, q) 的最大公约数
差值 := |r-s| mod g
返回差值和 g - 差值中的最小值
示例
让我们看看以下实现以更好地理解:
import math def get_minimum_diff (p, q, r, s): g = math.gcd(p,q) difference = abs(r-s) % g return min(difference, g - difference) p = 7 q = 17 r = 6 s = 3 print(get_minimum_diff(p, q, r, s))
输入
7,17,6,3
输出
0
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP