কম্পিউটার

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


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

অগ্রবর্তী শূন্য ছাড়া একটি সংখ্যা N দেওয়া হয়েছে৷ কাজটি হল N কে 25 দ্বারা বিভাজ্য করার জন্য প্রয়োজনীয় ন্যূনতম সংখ্যক চাল খুঁজে বের করা। প্রতিটি পদক্ষেপে, একজন যেকোন দুটি সংলগ্ন সংখ্যাকে অদলবদল করতে পারে এবং নিশ্চিত করতে পারে যে কোনও সময়ে সংখ্যায় কোনও অগ্রণী শূন্য থাকবে না। যদি N 25 দ্বারা বিভাজ্য করা সম্ভব না হয় তাহলে প্রিন্ট করুন -1

যদি N =5071 হয় তবে এটিকে 25 দ্বারা বিভাজ্য করতে 4 টি চাল প্রয়োজন

5071 → 5701 → 7501 → 7510 → 7150

অ্যালগরিদম

<পূর্ব>1. সংখ্যার সমস্ত জোড়া অঙ্কের উপর পুনরাবৃত্তি করুন। ধরা যাক জুটির প্রথম অঙ্কটি 'i' অবস্থানে এবং দ্বিতীয়টি 'j' অবস্থানে।2। এই সংখ্যাগুলিকে 3 নম্বরের শেষ দুটি অবস্থানে রাখুন। সংখ্যার একটি অগ্রণী শূন্য থাকলে। বামদিকের অশূন্য সংখ্যাটি খুঁজুন এবং এটিকে প্রথম অবস্থানে নিয়ে যান৷4৷ যদি বর্তমান সংখ্যাটি 25 দ্বারা বিভাজ্য হয় তবে উত্তরটি অদলবদল সংখ্যার সাথে আপডেট করুন

উদাহরণ

#include #include #include #include  namespace ব্যবহার করে std;int requireMoves(long long n){ string str =to_string(n); int ans =INT_MAX; int len ​​=str.size(); for (int i =0; i  i); k  0; --k) { swap(temp[k], temp[k - 1]); ++cnt; } long long num =atoll(temp.c_str()); যদি (সংখ্যা % 25 ==0) ans =min(ans, cnt); } } যদি (উত্তর ==INT_MAX) রিটার্ন -1; উত্তর দিন;}int main(){int n =5071; cout <<"সর্বনিম্ন প্রয়োজনীয় পদক্ষেপগুলি:" <<প্রয়োজনীয় মুভস(n) < 

আউটপুট

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

তৈরি করে
সর্বনিম্ন প্রয়োজনীয় পদক্ষেপ:4

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

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

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

  4. C++ এ অক্ষর মুছে না দিয়ে দুটি স্ট্রিং অ্যানাগ্রাম তৈরি করতে ন্যূনতম সংখ্যক ম্যানিপুলেশন প্রয়োজন