ধরুন আমরা একটি অ্যারে সংখ্যা আছে. আমাদের আরও একটি জোড়া আছে (x, y), আমাদের খুঁজে বের করতে হবে যে মান find(x,y) বিজোড় নাকি জোড়। সন্ধান()টি নিম্নরূপ
- fund(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)
- খুঁজুন(3, 2) =1,
- তাহলে খুঁজুন(2, 2) =7, এবং খুঁজুন(1, 2) =2^7 =128, এটি সমান
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- এমনকি :=সত্য
- যদি x> y বা nums[x] বিজোড় হয়, তাহলে
- এমনকি :=মিথ্যা
- যদি x <সংখ্যার আকার - 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