Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm tổng của tất cả các mảng con có độ dài lẻ trong Python

Giả sử chúng ta có một mảng các giá trị dương gọi là num, chúng ta phải tìm tổng của tất cả các mảng con có độ dài lẻ có thể có. Như chúng ta biết một mảng con là một dãy con liền kề của mảng. Chúng ta phải tìm tổng của tất cả các mảng con có độ dài lẻ của các số.

Vì vậy, nếu đầu vào là nums =[3,8,2,5,7], thì đầu ra sẽ là Các mảng con có độ dài lẻ là -

nums[0] = 3
nums[1] = 8
nums[2] = 2
nums[3] = 5
nums[4] = 7
nums[0..2], so sum = 13
nums[1..3], so sum = 15
nums[2..4], so sum = 14
nums[0..4] = 25
So total sum is 3+8+2+5+7+13+15+14+25 = 92

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • tổng:=0

  • idx:=0

  • l:=danh sách tất cả các chỉ số đặt lẻ

  • while idx

    • k:=l [idx]

    • đối với tôi trong phạm vi từ 0 đến kích thước của nums, hãy thực hiện

      • nếu i + k

        • Total:=total + tổng của tất cả các phần tử trong nums từ chỉ mục i đến i + k-1

    • idx:=idx + 1

  • tổng trả lại

Ví dụ (Python)

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

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))

Đầu vào

[3,8,2,5,7]

Đầu ra

92