Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonですべての奇数長のサブ配列の合計を見つけるプログラム


numsと呼ばれる正の値の配列があるとすると、考えられるすべての奇数長のサブ配列の合計を見つける必要があります。私たちが知っているように、サブ配列は配列の連続したサブシーケンスです。 numsのすべての奇数長のサブ配列の合計を見つける必要があります。

したがって、入力がnums =[3,8,2,5,7]のような場合、出力は次のようになります。奇数の長さのサブ配列は-

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

これを解決するには、次の手順に従います-

  • 合計:=0

  • idx:=0

  • l:=すべての奇数配置インデックスのリスト

  • idx

    • k:=l [idx]

    • 0からnumsのサイズの範囲のiの場合、実行します

      • i + k<数値のサイズ+1の場合、

        • total:=total+インデックスiからi+k-1までのnumsのすべての要素の合計

    • idx:=idx + 1

  • 合計を返す

例(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. Pythonでツリーのすべての要素の合計を見つけるプログラム

    いくつかの値を含む二分木があるとすると、ツリー内のすべての値の合計を見つける必要があります。 したがって、入力が次のような場合 その場合、出力は14になります これを解決するには、次の手順に従います- 関数recurse()を定義します。これはノードを取ります val:=ノードの値 ノードの左側がnullでない場合、 val:=val + recurse(ノードの左側) ノードの権利がnullでない場合、 val:=val + recurse(ノードの右側) 戻り値 メインの方法から、次のようにします- ルートがゼロ以外

  2. 数の奇数因子の合計を見つけるためのPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 数値入力nが与えられた場合、タスクは数値の奇数因子の合計を見つけることです。 ここでは、最初にすべての偶数の要因を排除する必要があります。 すべての偶数因子を削除するために、nを2で割り切れるまで繰り返し除算します。このステップの後、数の奇数因子のみを取得します。 以下は実装です- 例 import math def sumofoddFactors( n ):    #prime factors    res = 1    # ignore e