在Python中找到两点间的整点坐标数
假设我们提供了两个点(p1,q1)和(p2,q2)。如果在两个给定点之间画直线,则要查找整数坐标数(x和y值均为整数)。返回点数。
因此,如果输入为p1 = 3,q1 = 3,p2 = 6,q2 = 6,则输出将为2。如果我们画一条直线,我们会发现点(5,5)和(6,6)位于直线上。
为了解决这个问题,我们将按照以下步骤进行:
- 定义一个函数gcd_find()。这将采用x,y
- 如果y与0相同,那么
- 返回x
- 返回gcd_find(y,x mod y)。
- 如果y与0相同,那么
从主方法/函数,执行以下操作
- 返回gcd_find(| p2-p1 |,| q2-q1 |)-1
示例
让我们看以下实现,以获得更好的理解
def gcd_find(x,y):
if y == 0:
return x
return gcd_find(y,x % y)
def solve(p1,q1,p2,q2):
return gcd_find(abs(p2 - p1),abs(q2 - q1)) - 1
print(solve(3,3,6,6))
输入
3,3,6,6
输出
2