Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 제품을 최대화하기 위해 정수 깨기

<시간/>

문제

첫 번째이자 유일한 인수로 정수 num을 취하는 JavaScript 함수를 작성해야 합니다.

우리의 함수는 이 정수를 적어도 두 개의 청크로 나누어 더할 때 합 정수 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