সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি ইন্টিজার (num) নেবে। ফাংশনটি এই ইন্টিজারকে কমপক্ষে দুটি অংশে ভাগ করবে যেন তাদের যোগফল num হয় এবং গুণফল সর্বোচ্চ হয়। ফাংশনটি সেই সর্বোচ্চ গুণফলটি রিটার্ন করবে।
উদাহরণস্বরূপ, ইনপুট যদি হয় –
const num = 10;
তবে আউটপুট হবে –
const output = 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