কম্পিউটার

C++ ব্যবহার করে একটি কাঙ্খিত পৃষ্ঠায় যাওয়ার জন্য ন্যূনতম সংখ্যক পৃষ্ঠা ঘুরে।


সমস্যা বিবৃতি

N পৃষ্ঠাগুলির একটি বই দেওয়া হয়েছে, কাজটি হল পৃষ্ঠার ন্যূনতম সংখ্যা গণনা করা একটি পছন্দসই পৃষ্ঠা K পেতে৷

  • আমরা হয় বইয়ের সামনের দিক থেকে (যেমন পৃষ্ঠা 1 থেকে) বা বইয়ের পিছনের দিক থেকে (যেমন পৃষ্ঠা নম্বর N) থেকে পৃষ্ঠাগুলি উল্টানো শুরু করতে পারি।

  • প্রতিটি পৃষ্ঠার সামনে এবং পিছনে দুটি দিক রয়েছে, প্রথম পৃষ্ঠাটি ছাড়া, যার শুধুমাত্র পিছনের অংশ এবং শেষ পৃষ্ঠাটি বইয়ের পৃষ্ঠাগুলির সংখ্যার উপর নির্ভর করে শুধুমাত্র পিছনের দিক থাকতে পারে৷

যদি N =5 এবং K =4 হয় তবে আমাদের সর্বনিম্ন 1 পৃষ্ঠা উল্টাতে হবে −

  • আমরা যদি সামনে থেকে পৃষ্ঠা ঘুরানো শুরু করি তবে 2টি মোড় প্রয়োজন (1) -> (2, 3) -> (4,5)

  • যদি আমরা পেছন থেকে পৃষ্ঠা ঘুরানো শুরু করি, (4, 5) 1 টার্ন প্রয়োজন পৃষ্ঠা ঘুরানো =1

সুতরাং, ন্যূনতম সংখ্যক পৃষ্ঠা উল্টেছে =1.

অ্যালগরিদম

চূড়ান্ত ফলাফল −

গণনা করতে নীচের সূত্রটি ব্যবহার করুন <পূর্ব>1. K জোড় হলে, সামনের দূরত্ব =(K – 0)/2 এবং পিছনের দূরত্ব =(N – 1 – K)/22। K বিজোড় হলে, সামনের দূরত্ব =(K – 1)/2 এবং পিছনের দূরত্ব =(N – K)/2

উদাহরণ

#include #include  namespace ব্যবহার করে std;int getMinPageTurns(int n, int k){ if (n % 2 ==0) { ++n; } রিটার্ন মিনিট((k + 1) / 2, (n -k + 1) / 2);}int main(){ int n =5, k =4; cout <<"প্রয়োজনীয় পৃষ্ঠা ঘুরে =" < 

আউটপুট

আপনি যখন উপরের প্রোগ্রামটি কম্পাইল এবং এক্সিকিউট করবেন। এটি নিম্নলিখিত আউটপুট −

তৈরি করে
প্রয়োজনীয় পৃষ্ঠার মোড় =1

  1. C++ ব্যবহার করে N 25 দ্বারা বিভাজ্য করার জন্য প্রদত্ত চালের ন্যূনতম সংখ্যা প্রয়োজন।

  2. C++ ব্যবহার করে XORকে সর্বোচ্চ করতে ন্যূনতম সংখ্যক উপাদান সরাতে হবে।

  3. C++ ব্যবহার করে মাঝারি x সমান করতে উপাদানের ন্যূনতম সংখ্যা যোগ করতে হবে।

  4. C++ ব্যবহার করে সংখ্যার ন্যূনতম যোগফল নির্ণয় করুন।