Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình kiểm tra find(x, y) chẵn hay lẻ trong Python

Cho mảng nums và cặp (x, y). Hàm find(x,y): nếu x>y trả 1, ngược lại nums[x]^find(x+1,y). Xác định find(x,y) chẵn/lẻ.

Quan sát

  • Lũy thừa a^b chẵn ⟺ a chẵn và b > 0.
  • find(x,y) lẻ nếu: x>y, hoặc nums[x] lẻ, hoặc (x < y và nums[x+1]==0).

Ví dụ

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
    return 'Even' if even else 'Odd'

nums = [3, 2, 7]
x, y = 1, 2
print(solve(nums, x, y))  # Output: Even

Giải thích

find(1,2) = 2^find(2,2) = 2^7 = 128 (chẵn). nums[1]=2 chẵn, nums[2]=7≠0 → Even.