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

জাভাস্ক্রিপ্টে বল্ব অন-অফ করার সমস্যা


সমস্যা

নিচের পরিস্থিতি বিবেচনা করুন –

n সংখ্যক বল্ব আছে যেগুলো প্রাথমিকভাবে অফ। প্রথমে আমরা সব বল্ব অন করি। তারপর প্রতি ২য় বল্ব অফ করি। ৩য় রাউন্ডে প্রতি ৩য় বল্ব টগল করি (অফ থাকলে অন, অন থাকলে অফ)।

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

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

উদাহরণস্বরূপ, ইনপুট যদি হয় –

const n = 4;

তবে আউটপুট হবে –

const output = 2;

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

স্টেট অ্যারে-এ ০ মানে অফ, ১ মানে অন –

রাউন্ডস্টেট
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. জাভাস্ক্রিপ্টে File এবং FileReader

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

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

  4. জাভাস্ক্রিপ্টে ইম্পোর্ট ও এক্সপোর্ট রিনেম করা