কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে সমীকরণ সম্পূর্ণ করুন অনুপস্থিত অপারেটর দিয়ে

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা কিছু সংখ্যা গ্রহণ করে এবং সমীকরণ সन्तুষ্ট করার সঠিক অপারেশন সিকোয়েন্স রিটার্ন করবে। ব্যবহারযোগ্য অপারেটরها: (+, -, *, /, ^, %)

উদাহরণ:

ইনপুট: 5 3 8 আউটপুট: 5+3=8
ইনপুট: 9 27 3 আউটপুট: 9=27/3
ইনপুট: 5 2 25, 1 5 2 আউটপুট: 5^2=25, 1=5%2

প্রতিটি ইনপুটের জন্য কমপক্ষে একটি সম্ভাব্য সিকোয়েন্স আছে, আমাদের কমপক্ষে একটি সঠিক সিকোয়েন্স রিটার্ন করতে হবে।

সমস্যা সমাধানের অ্যালগরিদম:

  • প্রথমে একদিকে বড় সংখ্যাটি বেছে নিন (যেমন ১ ৪ ৭-এ ৭)
  • তারপর মাঝপথে সমান চিহ্ন দিন। (১ ৪=৭)
  • শেষে সমীকরণটি সমাধান করুন
  • যদি কাজ না করে, তবে অন্য সংখ্যাটি চেষ্টা করুন

উদাহরণ

const arr = ["5 3 8", "9 27 3", "5 2 25", "1 5 2", "3 3 3 30"]; 
const findCombination = (arr = []) => { 
  const answers = []; 
  for(let i = 0; i < arr.length; i++){ 
    const el = arr[i]; 
    // brute force দিয়ে সমাধান চেষ্টা 
    for(let n = 0; n < 1000; n++){ 
      const s = el.replace(/ /g, () => "+- */^%="[Math.floor(Math.random() * 7)]); 
      if(eval(s.replace(/=/g, "===").replace(/\^/g, "**")) === true 
        && answers.indexOf(s) === -1){ 
        answers.push(s); 
      }; 
    }; 
  } 
  return answers; 
}; 
console.log(findCombination(arr));

আউটপুট

কনসোলে আউটপুট হবে -

[ 
  '5+3=8', 
  '9=27/3', 
  '5^2=25', 
  '1=5%2', 
  '3=3%3^30', 
  '3^3+3=30', 
  '3+3^3=30' 
]
  1. জাভাস্ক্রিপ্টে সম্পূর্ণ Graph ক্লাস

  2. জাভাস্ক্রিপ্টে instanceof অপারেটর

  3. জাভাস্ক্রিপ্ট স্প্রেড অপারেটর

  4. জাভাস্ক্রিপ্টে গ্রুপিং অপারেটর ব্যাখ্যা