समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो पहले और एकमात्र तर्क के रूप में एक पूर्णांक, संख्या लेता है।
हमारे फ़ंक्शन को इन पूर्णांकों को कम से कम दो भागों में तोड़ना चाहिए, जो जोड़ने पर योग पूर्णांक संख्या देता है और जब गुणा किया जाता है तो अधिकतम संभव उत्पाद देता है। अंत में, हमारे फ़ंक्शन को यह अधिकतम संभव उत्पाद वापस करना चाहिए।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
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