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

合計がPythonで与えられる少数の数の積を見つけるプログラム


数nがあり、それらの合計がnに等しくなるように、2つ以上の数を見つける必要があり、これらの数の積が最大化されると、積を見つける必要があります。

したがって、入力がn =12の場合、出力は81になり、3 + 3 + 3 + 3=12および3*3 * 3 * 3=81となります。

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

  • 関数dp()を定義します。これにはn

    かかります
  • nが0と同じ場合、

    • 1を返す

  • ans:=0

  • 1からn+1の範囲のiの場合、実行

    • ans:=ansの最大値と(i * dp(n − i))

  • ansを返す

  • メインの方法から、次のようにします-

  • dp(n)を返す

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

class Solution:
   def solve(self, n):
      def dp(n):
         if n == 0:
            return 1
         ans = 0
         for i in range(1, n + 1):
            ans = max(ans, i * dp(n - i))
         return ans
      return dp(n)
ob1 = Solution()
print(ob1.solve(12))

入力

12

出力

81

  1. リストの累積合計を見つけるPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが与えられたので、累積合計でリストを作成する必要があります。 次に、以下の実装のソリューションを見てみましょう- 例 # cumulative sum def Cumulative(l):    new = []    cumsum = 0    for element in l:       cumsum += element       new.append(cumsum) &

  2. 配列の合計を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列が与えられた場合、与えられた配列の合計を計算する必要があります。 ここでは、ブルートフォースアプローチに従うことができます。つまり、リストをトラバースし、各要素を空の合計変数に追加します。最後に、合計の値を表示します。 以下で説明するように、組み込みの合計関数を使用して別のアプローチを実行することもできます。 例 # main arr = [1,2,3,4,5] ans = sum(arr,n) print ('Sum of the array is '