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

Pythonで合計がkで割り切れる連続したサブシーケンスの数を見つけるプログラム


配列numsと値kがあるとします。合計がkで割り切れる連続したサブシーケンスの数を見つける必要があります。

したがって、入力がk =3 nums =[1,2,3,4,1]の場合、サブシーケンスは[3]、[1,2]、[1,2,3]であるため、出力は4になります。 ]および[2,3,4]。

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

  • x:=サイズkの配列で、0で埋めます
  • x [0]:=1
  • r:=0、s:=0
  • numsの各要素について、
    • s:=(s + elem)mod k
    • r:=r + x [s]
    • x [s]:=x [s] + 1
  • return r

理解を深めるために、次の実装を見てみましょう-

def solve(k, nums):
   x = [0]*k
   x[0] = 1
   r=s=0
   for elem in nums:
      s = (s+elem) % k
      r += x[s]
      x[s] += 1
   return r

k = 3
nums = [1,2,3,4,1]
print(solve(k, nums))

入力

3, [1,2,3,4,1]

出力

4

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

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 数値入力nが与えられた場合、タスクは数値の偶数因子の合計を見つけることです。 ここでは、最初にすべての奇妙な要因を排除する必要があります。 入力された数値が奇数の場合、偶数の因数はなく、直接ゼロを返します。それ以外の場合は、以下のコードのアプローチに従います。 以下は実装です- 例 import math # Returns sum of all even factors of n. def sumofFactors(n) :    # If n is odd   &nbs

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

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 入力された数値を指定して、指定された数値の因子の最小合計を求めます。 ここでは、すべての因子とそれに対応する合計を計算し、それらの中から最小値を見つけます。 したがって、数の積の最小合計を見つけるために、積の素因数の合計を見つけます。 これが問題の反復実装です- 例 #iterative approach def findMinSum(num):    sum_ = 0    # Find factors of number and add to the sum