কম্পিউটার

C++ এ একটি অ্যারেতে সমস্ত মান সেট করতে ন্যূনতম ডানদিকের ফ্লিপগুলি গণনা করুন


আমাদেরকে 0s এবং 1s এর একটি অ্যারে দেওয়া হয়েছে যা একই তারের সাথে ক্রমানুসারে সংযুক্ত বাল্বের অবস্থাকে উপস্থাপন করে। 0 প্রতিনিধিত্ব করে যে বাল্বটি বন্ধ এবং 1 প্রতিনিধিত্ব করে যে বাল্বটি চালু রয়েছে৷ এন বাল্বগুলির এই ধরনের ক্রমটির জন্য, যদি বাল্বের সুইচটি চাপানো হয় তবে সমস্ত বাল্ব ডানদিকে, (i+1 th পর্যন্ত n) তাদের পূর্ববর্তী তাক পরিবর্তন করে, অন থেকে অফ বা অফ থেকে ON।

সমস্ত বাল্বের প্রদত্ত অবস্থার জন্য, লক্ষ্য হল ন্যূনতম সুইচগুলিকে সবগুলি চালু করতে টিপতে হবে তা খুঁজে বের করা৷ [একই সুইচ যেকোন সংখ্যক বার চাপা যেতে পারে]। এটি একটি অ্যারেতে সঠিক সূচকের মানের অবস্থা উল্টানোর মতোই সবগুলিকে 1 হিসাবে সেট করা৷

ইনপুট

বাল্ব[]={ 1,0,1,0 }

আউটপুট

সর্বনিম্ন ডান ফ্লিপস:3

ব্যাখ্যা

আসল অবস্থা 1010

সুইচ 2 টিপুন:- 1:101 ফ্লিপ কাউন্ট=1 টিপুন সুইচ 3:- 11:10 ফ্লিপ কাউন্ট=2 টিপুন সুইচ 4:- 111:1 ফ্লিপ কাউন্ট=3 টিপুন

ইনপুট

বাল্ব[]={ 1,0,0,0 }

আউটপুট

সর্বনিম্ন ডান ফ্লিপস:1

ব্যাখ্যা

আসল অবস্থা 1000প্রেস সুইচ 2:- 1:111 ফ্লিপ কাউন্ট=1

ডানদিকের সমস্ত বাল্ব চালু হয়েছে৷

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • পূর্ণসংখ্যা বাল্বের N সংখ্যার অবস্থা সংরক্ষণ করে।

  • ফাংশন minFlips(int arr[],int n) ইনপুট হিসাবে একটি অ্যারে এবং এর দৈর্ঘ্য n নেয় এবং অ্যারের মান সেট করতে ডান ফ্লিপগুলির ন্যূনতম গণনা প্রদান করে (সব বাল্ব চালু করুন)

  • পরিবর্তনশীল গণনা ফ্লিপের সংখ্যা সংরক্ষণ করতে ব্যবহৃত হয়, প্রাথমিকভাবে 0।

  • অ্যারে সুইচ[] আইথ বাল্বের সাথে সম্পর্কিত সমস্ত সুইচের প্রাথমিক অবস্থা সংরক্ষণ করতে ব্যবহৃত হয়। সবগুলি হল 0 ( সুইচ[]={0}।)

  • i=0 থেকে শুরু করে n পর্যন্ত আমরা −

    অনুসরণ করি
    • বাল্ব চালু থাকলে এবং সুইচ বন্ধ থাকলে কিছুই করবেন না (i বাড়ান)

    • যদি বাল্ব বন্ধ থাকে এবং সুইচ চালু থাকে, তাহলে কিছুই করবেন না (i বাড়ান) কারণ সুইচ বন্ধ করলে বাল্বের অবস্থার কিছুই হবে না

    • যদি বাল্ব বন্ধ থাকে এবং সুইচ বন্ধ থাকে, তাহলে গণনা বাড়ান এবং ডানদিকে সমস্ত বাল্বের অবস্থা চালু করুন। (যখন লুপ)

  • ফর লুপ শেষ হওয়ার পর ফ্লিপ করা হলে 'গণনায়' উপস্থিত ফলাফলটি ফেরত দিন।

  • রিটার্ন গণনা।

উদাহরণ

সাজানো ক্রমে আইটেমগুলি সাজানোর জন্য সর্বনিম্ন সংখ্যক মুভ-টু-ফ্রন্ট// সরানোর জন্য C++ প্রোগ্রাম। // অর্ডার বৃদ্ধিতে। int swich[n] ={0}; //প্রাথমিকভাবে আমরা স্টেটগুলি ফ্লিপ করি না, তাই ফ্লিপ (int i=0;i

আউটপুট

একটি অ্যারেতে সমস্ত মান সেট করতে ন্যূনতম ডানদিকে ফ্লিপ করুন:4

  1. X এর সমস্ত সম্ভাব্য মানের গণনা যেমন C++ এ A % X =B

  2. C++-এ একটি অ্যারেতে k শক্তিশালী মান

  3. C++-এর সমস্ত অ্যারের উপাদান দ্বারা বিভাজ্য একটি পরিসরে সংখ্যা গণনা করুন

  4. C++ এ একটি অ্যারেতে সমস্ত মৌলিক সংখ্যার গুণফল