কম্পিউটার

জাভাস্ক্রিপ্টে বাল্ব চালু এবং বন্ধ করা


সমস্যা

এই নিম্নলিখিত পরিস্থিতি বিবেচনা করুন -

এন বাল্ব আছে যা প্রাথমিকভাবে বন্ধ আছে। আমরা প্রথমে সমস্ত বাল্ব চালু করি। তারপরে, আমরা প্রতি সেকেন্ড বাল্ব বন্ধ করি। তৃতীয় রাউন্ডে, আমরা প্রতি তৃতীয় বাল্বকে টগল করি (যদি এটি বন্ধ থাকে বা যদি এটি চালু থাকে তবে বন্ধ করা)।

সাধারণভাবে, ith রাউন্ডের জন্য, আমরা প্রতিটি i বাল্ব টগল করি। এবং সবশেষে নবম রাউন্ডের জন্য, আমরা শুধুমাত্র শেষ বাল্বটি টগল করি।

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা n কে একমাত্র ইনপুট হিসাবে নেয় এবং n রাউন্ডের পরে কতটি বাল্ব চালু আছে তা খুঁজে বের করে।

উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয় −

const n = 4;

তারপর আউটপুট −

হওয়া উচিত
const output = 2;

আউটপুট ব্যাখ্যা:

স্টেট অ্যারেতে, একটি 0 বন্ধ নির্দেশ করে যেখানে 1 নির্দেশ করে −

বৃত্তাকার রাজ্য
1 [1, 1, 1, 1, 1]
2 [1, 0, 1, 0, 1]
3 [1, 0, 0, 0, 1]
4 [1, 0, 0, 1, 1]
5 [1, 0, 0, 1, 0]

তাই পঞ্চম রাউন্ডের পর মাত্র দুটি বাল্ব চালু আছে।

উদাহরণ

এর জন্য কোড হবে −

const n = 5;
const findOn = (n = 1) => {
   let off = 0;
   let on = n;
   while(off <= on){
      let mid = Math.floor((off + on) / 2);
      if(mid * mid > n){
         on = mid - 1;
      }else{
         off = mid + 1;
      };
   };
   return Math.floor(on);
};
console.log(findOn(n));

আউটপুট

এবং কনসোলে আউটপুট হবে −

2

  1. জাভাস্ক্রিপ্টে ফাইল এবং ফাইলরিডার?

  2. জাভাস্ক্রিপ্টে TextDecoder এবং TextEncoder?

  3. জাভাস্ক্রিপ্টে ডিস্ট্রাকচারিং এবং ফাংশন প্যারামিটার

  4. জাভাস্ক্রিপ্টে আমদানি ও রপ্তানির নাম পরিবর্তন করা