ধরুন আমরা একটি অ্যারে সংখ্যা আছে. আমাদের আরও একটি জোড়া আছে (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