কম্পিউটার

অ্যারের সমস্ত উপাদানকে C++ এ 4 দ্বারা বিভাজ্য করার ন্যূনতম পদক্ষেপ


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

n আকারের একটি অ্যারে দেওয়া, কাজটি হল অ্যারের সমস্ত উপাদানকে 4 দ্বারা বিভাজ্য করার জন্য প্রয়োজনীয় ন্যূনতম সংখ্যক ধাপগুলি খুঁজে বের করা। একটি ধাপকে অ্যারে থেকে যেকোনো দুটি উপাদান অপসারণ এবং এই উপাদানগুলির যোগফলকে সংজ্ঞায়িত করা হয়। অ্যারেতে

উদাহরণ

যদি ইনপুট অ্যারে হয় {1, 2, 0, 2, 4, 3} তাহলে 3টি অপারেশন প্রয়োজন -

1 + 3 =42 + 2 =40 + 4 =4

অ্যালগরিদম

<পূর্ব>1. অ্যারের সমস্ত উপাদানের যোগফল যদি না হয় তবে এই কাজটি সম্ভব নয় ২ দ্বারা বিভাজ্য হওয়া উচিত। 4 থেকে 03 আকারের মডুলাস নামক একটি অ্যারে শুরু করুন। 0-এ একটি কাউন্টার শুরু করুন। এটি করা ধাপের সংখ্যার উপর নজর রাখবে। ইনপুট অ্যারের মধ্য দিয়ে অতিক্রম করুন এবং প্রতিটি উপাদান5 এর মডুলাস 4 নিন। মডুলাস অ্যারেতে মোড 4 মানের মান 16 দ্বারা বৃদ্ধি করুন। মডুলাস[0] হল এমন উপাদানগুলির গণনা যা ইতিমধ্যে 4 দ্বারা বিভাজ্য। তাই অন্য কোন উপাদান7 এর সাথে তাদের জোড়ার প্রয়োজন নেই। মডুলাস[1] এবং মডুলাস[3] উপাদানগুলিকে 4 দ্বারা বিভাজ্য সংখ্যা পেতে একত্রিত করা যেতে পারে। সুতরাং, উভয় 8-এর সর্বনিম্ন মান পর্যন্ত বৃদ্ধির সংখ্যা। মডুলাস[2]-এর প্রতি 2টি উপাদানকে 4.9 এ বিভাজ্য উপাদান পেতে একত্রিত করা যেতে পারে। অবশিষ্ট উপাদানগুলির জন্য, মডুলাস[2] মডুলাস[1] এবং মডুলাস[3].10 এর অর্ধেক দ্বারা বৃদ্ধির মান। এখন, অর্ধেক মডুলাস দ্বারা বৃদ্ধি গণনা [2]. আমরা অর্ধেক গ্রহণ করি কারণ প্রতিটি দুটি উপাদান এক 11 হিসাবে মিলিত হয়। গণনার চূড়ান্ত মান হল 4 দ্বারা বিভাজ্য ইনপুট অ্যারের সমস্ত উপাদানকে রূপান্তর করতে প্রয়োজনীয় ধাপের সংখ্যা।

উদাহরণ

#include নেমস্পেস ব্যবহার করে std;int getMinRequiredSteps(int arr[], int n) { int count =0; int মডুলাস[4] ={0}; int sum =0; জন্য (int i =0; i  মডুলাস[3]) { গণনা +=মডুলাস[3]; } অন্য { গণনা +=মডুলাস[1]; } মডুলাস[1] -=গণনা; মডুলাস [৩] -=গণনা; মডুলাস[2] +=মডুলাস[1] / 2; মডুলাস[2] +=মডুলাস[3] / 2; গণনা +=মডুলাস[1] / 2; গণনা +=মডুলাস[3] / 2; গণনা +=মডুলাস[2] / 2; ফেরত গণনা; }}int main() { int arr[] ={1, 2, 0, 2, 4, 3}; int n =sizeof(arr) / sizeof(arr[0]); cout <<"সর্বনিম্ন প্রয়োজনীয় পদক্ষেপ =" < 

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

আউটপুট

সর্বনিম্ন প্রয়োজনীয় পদক্ষেপ =2

  1. C++ ব্যবহার করে সমস্ত উপাদান 0 করতে একটি অ্যারেতে ন্যূনতম সংখ্যক অপারেশন।

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

  3. C++ ব্যবহার করে অ্যারেটিকে ভালো করার জন্য ন্যূনতম সংখ্যক উপাদান সরানো উচিত।

  4. C++-এ অ্যারের সমস্ত উপাদান একই করতে ন্যূনতম ডিলিট অপারেশন।