打破整数以最大化 JavaScript 中的产品

问题

我们需要编写一个 JavaScript 函数,它接受一个整数 num 作为第一个也是唯一的参数。

我们的函数应该将这些整数分成至少两个块,当添加时给出总和整数 num,相乘时给出最大可能的乘积。最后,我们的函数应该返回这个最大可能的乘积。

例如,如果函数的输入是 -

const num = 10;

那么输出应该是 -

const output = 36;

输出说明:

因为 10 可以分解为 3 + 3 + 4,乘以得到 36。

示例

此代码将是 -

const num = 10;

const breakInt = (num = 2) => {

   const dp = new Array(num + 1).fill(0);

   dp[0] = 0;

   dp[1] = 1;

   for(let i = 2; i <= num; i++){

      for(let j = 1; 2*j <= i; j++){

         dp[i] = Math.max(dp[i], Math.max(j, dp[j]) * Math.max(i-j,

         dp[i-j]) );

      };

   };

   return dp[num];

};

console.log(breakInt(num));

输出结果

控制台中的输出将是 -

36

以上是 打破整数以最大化 JavaScript 中的产品 的全部内容, 来源链接: utcz.com/z/311402.html

回到顶部