কম্পিউটার টিউটোরিয়াল

বিজোড় দৈর্ঘ্যের সাবঅ্যারেগুলোর যোগফল বের করা

একটি পজিটিভ মান দিয়ে nums অ্যারে দেওয়া আছে। সব সম্ভাব্য বিজোড় দৈর্ঘ্যের সাবঅ্যারেগুলোর যোগফল বের করতে হবে। সাবঅ্যারে = কন্টিগুয়াস সাবসিকোয়েন্স।

ইনপুট: nums = [3,8,2,5,7] → আউটপুট: 92।

বিজোড় দৈর্ঘ্যের সাবঅ্যারে: [3], [8], [2], [5], [7], [3,8,2]=13, [8,2,5]=15, [2,5,7]=14, [3,8,2,5,7]=25। মোট = ৯২।

সমাধানের ধাপসমূহ

  • total := 0

  • l := সব বিজোড় ইনডেক্সের লিস্ট (১, ৩, ৫...)

  • প্রতিটি k ∈ l-এর জন্য:

    • i = 0 থেকে len(nums)-1 পর্যন্ত:
      • যদি i+k < len(nums)+1: total += sum(nums[i:i+k])
  • total রিটার্ন করুন

উদাহরণ (Python)

def solve(nums):
    total = 0
    idx = 0
    l = [i for i in range(len(nums) + 1) if i % 2 != 0]
    while idx < len(l):
        k = l[idx]
        for i in range(len(nums)):
            if i + k < len(nums) + 1:
                total += sum(nums[i:i+k])
        idx += 1
    return total

nums = [3, 8, 2, 5, 7]
print(solve(nums))

ইনপুট

[3,8,2,5,7]

আউটপুট

92
  1. পাইথনে বাইনারি ট্রির সব নোডের মান যোগফল বের করা

  2. পাইথনে সব সन्नিহিত সাবলিস্টের যোগফলের যোগফল বের করার প্রোগ্রাম

  3. পাইথন প্রোগ্রাম ডিকশনারির সব আইটেমের যোগফল বের করা

  4. পাইথনে একটি সংখ্যার বিষম গুণনীয়গুলোর যোগফল বের করার প্রোগ্রাম