Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตรวจสอบว่าเป็นไปได้หรือไม่ที่จะย้ายจาก (0, 0) เป็น (x, y) ในขั้นตอน N ใน Python


สมมติว่าเรามีจุดพิกัด (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