ধরুন, আমাদেরকে পূর্ণসংখ্যা সম্বলিত একটি অ্যারে "input_list" প্রদান করা হয়েছে। আমাদের দেওয়া সমস্যাটি হল প্রদত্ত অ্যারেটিকে দুটি অর্ধে ভাগ করা যায় কিনা তা পরীক্ষা করা, যেখানে দুটি অর্ধের যোগফলের পার্থক্য একটি সংখ্যা n এর সমান। নম্বর n আগেই দেওয়া হবে৷
৷সুতরাং, যদি ইনপুটটি হয় input_list=[9,2,5,6], n =0, তাহলে আউটপুট হবে "সম্ভাব্য"৷
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- তালিকা_মোট :=ইনপুট_লিস্টের মানের সমষ্টি
- যদি (list_total - n) mod 2 1 এর মত হয়, তাহলে
- প্রত্যাবর্তন "সম্ভব নয়"
- val :=(list_total - n) / 2
- temp_sum :=0;
- আমি রেঞ্জ 0 থেকে ইনপুট_লিস্টের আকারের জন্য, করুন
- temp_sum :=temp_sum + input_list[i]
- যদি temp_sum val এর সমান হয়, তাহলে
- রিটার্ন "সম্ভব"
- প্রত্যাবর্তন "সম্ভব নয়"
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
def solve(input_list,n): list_total = sum(input_list) if (list_total - n) % 2 == 1: return "Not Possible" val = (list_total - n) / 2 temp_sum = 0; for i in range (0,len(input_list)): temp_sum += input_list[i] if (temp_sum == val): return "Possible" return "Not Possible" input_list= [9,2,5,6] n = 0 print(solve(input_list, n))
ইনপুট
[9,2,5,6], 0
আউটপুট
Possible