সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা ঠিক 4টি সংখ্যার অ্যারে নেয়, arr, প্রথম আর্গুমেন্ট হিসাবে এবং একটি টার্গেট দ্বিতীয় আর্গুমেন্ট হিসাবে।
লক্ষ্যের সমান মান পেতে অ্যারে অ্যারের সংখ্যাগুলি *, /, +, -, (, ) এর মাধ্যমে পরিচালিত হতে পারে কিনা তা আমাদের ফাংশনকে বিচার করতে হবে।
উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয়
ইনপুট
const arr = [5, 3, 2, 1]; const target = 4;
আউটপুট
const output = true;
আউটপুট ব্যাখ্যা
কারণ আমরা এভাবে −
4 অর্জন করতে পারি(5 - 1) * (3 - 2) = 4
উদাহরণ
নিম্নলিখিত কোড -
const arr = [5, 3, 2, 1]; const target = 4; const canOperate = (arr = [], target = 1) => { const isValid = x => Math.abs(x - target) < 0.0000001 const helper = (arr = []) => { if (arr.length === 1) { return isValid(arr[0]) } let valid = false for (let i = 0; i < arr.length; i++) { for (let j = i + 1; j < arr.length; j++) { const nextArr = arr.filter((x, index) => index !== i && index !== j) valid = valid || helper([...nextArr, arr[i] + arr[j]]) || helper([...nextArr, arr[i] - arr[j]]) || helper([...nextArr, arr[j] - arr[i]]) || helper([...nextArr, arr[i] * arr[j]]) || helper([...nextArr, arr[i] / arr[j]]) || helper([...nextArr, arr[j] / arr[i]]) } } return valid } return helper(arr) } console.log(canOperate(arr, target));
আউটপুট
true