두 개의 점(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