Python程序:判断find(x, y)的值是奇数还是偶数


假设我们有一个数组nums。我们还有一个数对(x, y),我们需要判断find(x,y)的值是奇数还是偶数。find()函数定义如下:

  • find(x, y) = 1 如果 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)
  • find(3, 2) = 1
  • 所以find(2, 2) = 7,而find(1, 2) = 2^7 = 128,这是一个偶数。

为了解决这个问题,我们将遵循以下步骤:

  • even := True
  • 如果 x > y 或 nums[x] 为奇数,则
    • even := False
  • 如果 x < nums的长度 - 1 且 x < y 且 nums[x+1] 等于 0,则
    • even := False
  • 如果 even 为 True,则
    • 返回 'Even'
  • 否则,
    • 返回 'Odd'

示例

让我们来看下面的实现,以便更好地理解:

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

更新于:2021年10月25日

浏览量:197

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.