Giả sử, chúng ta đã được cung cấp hai điểm (p1, q1) và (p2, q2). Chúng ta phải tìm ra số tọa độ tích phân (cả giá trị x và y đều là số nguyên) nếu một đường thẳng được vẽ giữa hai điểm đã cho. Số điểm được trả lại.
Vì vậy, nếu đầu vào là p1 =3, q1 =3, p2 =6, q2 =6, thì đầu ra sẽ là 2 Nếu chúng ta vẽ đường thẳng, chúng ta sẽ thấy rằng các điểm (5,5) và (6 , 6) nằm trên đường thẳng.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- Xác định một hàm gcd_find (). Điều này sẽ lấy x, y
- nếu y giống 0, thì
- trả về x
- return gcd_find (y, x mod y)
- nếu y giống 0, thì
Từ phương thức / chức năng chính, hãy thực hiện như sau -
- trả về gcd_find (| p2 - p1 |, | q2 - q1 |) - 1
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
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))
Đầu vào
3,3,6,6
Đầu ra
2