Syntax error Program to check whether one point can be converted to another or not in Python

Program to check whether one point can be converted to another or not in Python



Suppose we have a starting points (sx, sy), and target point (tx, ty), we have to check whether a sequence of moves exists from the start point to the end point. Here move consists of taking a point (x, y) and transforming it to either (x, x+y) or (x+y, y).

So, if the input is like (sx, sy) = (1,1) (tx, ty) = (4,5), then the output will be True, this is because move (1,1) to (2,1), then (3,1), then (4,1), then (4,5).

To solve this, we will follow these steps −

  • Define a function solve() . This will take sx, sy, tx, ty

  • if sx > tx or sy > ty, then

    • return False

  • if sx is same as tx, then

    • return(ty-sy) mod sx is same as 0

  • if sy is same as ty, then

    • return(tx - sx) mod sy is same as 0

  • return solve(sx, sy, tx-ty, ty) or solve(sx, sy, tx, ty-tx)

Example

Let us see the following implementation to get better understanding

def solve(sx, sy, tx, ty):
   if sx > tx or sy > ty:
      return False
   if sx == tx:
      return (ty-sy)%sx == 0
   if sy == ty:
      return (tx - sx)%sy == 0
   return solve(sx, sy, tx-ty, ty) or solve(sx, sy, tx, ty-tx)

(sx, sy) = (1,1)
(tx, ty) = (4,5)
print(solve(sx, sy, tx, ty))

Input

(1,1), (4,5)

Output

True
Updated on: 2021-10-08T07:26:55+05:30

152 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements