สมมติว่าเรามีจุดพิกัด (x, y) และค่าอื่น n เราต้องตรวจสอบว่าเราสามารถย้ายจาก (0, 0) เป็น (x, y) โดยใช้ขั้นตอน n ได้หรือไม่ เราสามารถเลื่อนสี่ทิศทางไปทางซ้าย ขวา ขึ้นและลงได้
ดังนั้น หากอินพุตเป็น p =(2, 1) n =3 เอาต์พุตจะเป็น True เราสามารถเลื่อนไปทางขวา 2 ขั้น แล้วเลื่อนขึ้นหนึ่งขั้นขึ้นไป
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- ถ้า n>=|x ของ p| + |y ของ p| และ (n -(|x of p| + |y of p|)) เป็นเลขคู่ ดังนั้น
- คืนค่า True
- คืนค่าเท็จ
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
def solve(p, n): if n >= abs(p[0]) + abs(p[1]) and (n - (abs(p[0]) + abs(p[1]))) % 2 == 0: return True return False p = (2, 1) n = 3 print(solve(p, n))
อินพุต
(2, 1), 3
ผลลัพธ์
True