সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসেবে একটি সংখ্যা অ্যারে (arr) এবং دوم আর্গুমেন্ট হিসেবে একটি একক সংখ্যা (num) নেবে।
আমাদের অ্যারে-এ এলিমেন্ট যোগ করে এমন করব যাতে [০, num] রেঞ্জের (উভয় সীমাসহ) যেকোনো সমষ্টি অ্যারে-এর নির্দিষ্ট সংখ্যাগুলো যোগ করে পাওয়া যায়। ফাংশনটি কমপক্ষে কতগুলো সংখ্যা যোগ করতে হবে তা রিটার্ন করবে।
উদাহরণস্বরূপ, ইনপুট যদি হয় –
const arr = [1, 5, 10]; const sum = 20;
তবে আউটপুট হবে –
const output = 2;
আউটপুট ব্যাখ্যা:
কারণ যদি আমরা দুটি সংখ্যা (২ এবং ৪) যোগ করি, তবে [০, ২০] রেঞ্জের যেকোনো সমষ্টি পাওয়া যাবে।
উদাহরণ
কোডটি নিচের মতো –
const arr = [1, 5, 10]; const sum = 20; const minimumAddition = (arr = [], sum = 1) => { let canAdd = 1; let count = 0,i = 0; while(canAdd <= sum){ if((i >= arr.length) || (canAdd < arr[i])){ count++; canAdd+=canAdd; }else{ canAdd += arr[i++]; }; }; return count; }; console.log(minimumAddition(arr, sum));আউটপুট
কনসোলে আউটপুট হবে –
2