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

โปรแกรมหาค่าของ find(x, y) เป็นคู่หรือคี่ใน Python


สมมติว่าเรามีตัวเลขอาร์เรย์ เรายังมีอีกคู่หนึ่ง (x, y) เราต้องหาว่าค่า find(x,y) เป็นคี่หรือคู่ find() เป็นดังนี้

  • find(x, y) =1 if x> y
  • find(x, y) =nums[x]^find(x+1, y) มิฉะนั้น

ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[3,2,7] (x, y) =1, 2 ผลลัพธ์จะเป็นค่าคู่ เพราะ −

  • find(1, 2) =nums[1]^find(2,3)
  • find(2, 2) =nums[2]^find(3,2)
  • หา(3, 2) =1,
  • ดังนั้น find(2, 2) =7 และ find(1, 2) =2^7 =128 นี่คือคู่

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • คู่ :=จริง
  • ถ้า x> y หรือ nums[x] เป็นคี่ แล้ว
    • แม้ :=เท็จ
  • ถ้า x <ขนาดของ nums - 1 และ x
  • แม้ :=เท็จ
  • ถ้าเป็น True แล้ว
    • คืนค่า 'คู่'
  • มิฉะนั้น
    • ส่งคืน 'คี่'
  • ตัวอย่าง

    ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

    def solve(nums, x, y):
       even = True
       if x > y or (nums[x] % 2 == 1):
          even = False
       if x < len(nums) - 1 and x < y and nums[x+1] == 0:
          even = False
       if even:
          return 'Even'
       else:
          return 'Odd'
    
    nums = [3,2,7]
    (x, y) = 1,2
    print(solve(nums, x, y))

    อินพุต

    [3,2,7], 1, 2
    

    ผลลัพธ์

    Even