समस्या
हमें एक 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