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

জাভাস্ক্রিপ্টে ২-কি বোর্ড সমস্যা (2 Key Keyboard Problem)


নিচের পরিস্থিতি কল্পনা করুন —

প্রাথমিকভাবে একটি নোটপ্যাডে শুধু 'A' ক্যারেক্টার আছে। আমরা প্রতিটি স্টেপে এই নোটপ্যাডে দুটি অপারেশন করতে পারি —

  • Copy All — নোটপ্যাডে থাকা সব ক্যারেক্টার কপি করতে পারি (আংশিক কপি অনুমোদিত নয়)।
  • Paste — গতবারের কপি করা ক্যারেক্টারগুলো পেস্ট করতে পারি।

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি সংখ্যা (num) একমাত্র আর্গুমেন্ট হিসেবে গ্রহণ করবে। ফাংশনটি ন্যূনতম কতগুলো স্টেপ (copy all বা paste) দরকার 'A' কে num বার প্রিন্ট করার জন্য সেটি গণনা করে রিটার্ন করবে।

উদাহরণস্বরূপ —

ইনপুট সংখ্যা যদি হয় —

const num = 3;

তাহলে আউটপুট হবে —

const output = 3;

কারণ, স্টেপগুলো হলো —

  • copy all (ফলাফল: 'A')
  • paste all (ফলাফল: 'AA')
  • paste all (ফলাফল: 'AAA')

উদাহরণ

কোডটি নিচে দেওয়া হলো —

const num = 3; 
const minimumSteps = (num = 1) => { 
  let [curr, copy, steps] = [1, 0, 0]; 
  while(curr != num){ 
    if((copy < curr) && ((num - curr) % curr) == 0) { 
      copy = curr; 
    }else{ 
      curr += copy; 
    }; 
    steps += 1; 
  }; 
  return steps; 
}; 
console.log(minimumSteps(num));

আউটপুট

কনসোল আউটপুট:

3

  1. জাভাস্ক্রিপ্ট - ENTER কী দিয়ে বাটন ট্রিগার করা

  2. জাভাস্ক্রিপ্ট - ভেরিয়েবল দিয়ে অবজেক্ট কী সেট করা

  3. জাভাস্ক্রিপ্টে কি-ইভেন্টস ব্যাখ্যা

  4. জাভাস্ক্রিপ্টে এন্টার কী প্রেস ইভেন্ট হ্যান্ডলিং