สมมติว่าเรามีตัวเลขอาร์เรย์ เรายังมีอีกคู่หนึ่ง (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
- แม้ :=เท็จ
- คืนค่า 'คู่'
- ส่งคืน 'คี่'
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
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