Pythonで合計kになる個別の組み合わせの数を見つけるプログラム
numsと呼ばれる別個の数と別の数kのリストがあるとすると、合計でkになる別個の組み合わせの数を見つける必要があります。組み合わせを作成するときに数字を再利用できます。
したがって、入力がnums =[2、4、5] k =4のような場合、[2、2]と[4]のような2つのグループを作成できるため、出力は2になります。
これを解決するには、次の手順に従います。
- table:=サイズk + 1のリスト、0で埋める
- table [0]:=1
- numsの各numに対して、実行します
- numからkの範囲のiについては、
- table [i]:=table [i] + table [i --num]
- numからkの範囲のiについては、
- リターンテーブル[k]
理解を深めるために、次の実装を見てみましょう。
サンプルコード
class Solution: def solve(self, nums, k): table = [1] + [0] * k for num in nums: for i in range(num, k + 1): table[i] += table[i - num] return table[k] ob = Solution() nums = [2, 4, 5] k = 4 print(ob.solve(nums, k))
入力
[2, 4, 5], 4
出力
2
-
数の偶数因子の合計を見つけるための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