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
-
数の偶数因子の合計を見つけるためのPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 数値入力nが与えられた場合、タスクは数値の偶数因子の合計を見つけることです。 ここでは、最初にすべての奇妙な要因を排除する必要があります。 入力された数値が奇数の場合、偶数の因数はなく、直接ゼロを返します。それ以外の場合は、以下のコードのアプローチに従います。 以下は実装です- 例 import math # Returns sum of all even factors of n. def sumofFactors(n) : # If n is odd &nbs
-
数の因子の最小合計を見つけるためのPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 入力された数値を指定して、指定された数値の因子の最小合計を求めます。 ここでは、すべての因子とそれに対応する合計を計算し、それらの中から最小値を見つけます。 したがって、数の積の最小合計を見つけるために、積の素因数の合計を見つけます。 これが問題の反復実装です- 例 #iterative approach def findMinSum(num): sum_ = 0 # Find factors of number and add to the sum