কম্পিউটার

C++ এ K তে উত্থাপিত 10 পাওয়ার দ্বারা বিভাজ্য সংখ্যায় ন্যূনতম অপসারণ


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

দুটি ধনাত্মক পূর্ণসংখ্যা N এবং K দেওয়া হয়েছে। সংখ্যার ন্যূনতম সংখ্যাটি খুঁজুন যা N সংখ্যা থেকে সরানো যেতে পারে যাতে অপসারণের পরে সংখ্যাটি 10K দ্বারা বিভাজ্য হয়। প্রিন্ট -1 যদি অসম্ভব হয়।

উদাহরণ

যদি N =10203027 এবং K =2 হয় তবে আমাদের 3টি সংখ্যা সরাতে হবে। যদি আমরা 3, 2 এবং 7 মুছে ফেলি তাহলে সংখ্যাটি 10200 হবে যা 102 দ্বারা বিভাজ্য

অ্যালগরিদম

<পূর্ব>1. শেষ থেকে সংখ্যা অতিক্রম করা শুরু করুন। বর্তমান সংখ্যা শূন্য না হলে, কাউন্টার ভেরিয়েবল বৃদ্ধি করুন, অন্যথায় পরিবর্তনশীল K2 হ্রাস করুন। K যদি শূন্য হয়, তাহলে উত্তর 3 হিসাবে কাউন্টার দিন। পুরো সংখ্যাটি অতিক্রম করার পরে, K এর বর্তমান মান শূন্য কিনা তা পরীক্ষা করুন। যদি এটি শূন্য হয়, উত্তর হিসাবে কাউন্টার দিন, অন্যথায় N -14-এ সংখ্যার সংখ্যা হিসাবে উত্তর দিন। যদি প্রদত্ত সংখ্যাটিতে কোনো শূন্য না থাকে, উত্তর হিসাবে -1 দিন

উদাহরণ

#include নেমস্পেস ব্যবহার করে std;int getBitsToBeRemoved(int n, int k) { string s =to_string(n); int ফলাফল =0; int zeroFound =0; জন্য (int i =s.size() - 1; i>=0; --i) { if (k ==0) { ফেরত ফলাফল; } যদি (s[i] =='0') { zeroFound =1; --k; } অন্য { ++ ফলাফল; } } যদি (!k) { ফেরত ফলাফল; } else if (zeroFound) { রিটার্ন s.size() - 1; } রিটার্ন - 1;}int main() { int n =10203027; int k =2; cout <<"সর্বনিম্ন প্রয়োজনীয় অপসারণ =" < 

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

আউটপুট

সর্বনিম্ন প্রয়োজনীয় অপসারণ =3

  1. একটি সংখ্যা C++ এ অন্য একটি সংখ্যার শক্তি কিনা তা পরীক্ষা করুন

  2. একটি সংখ্যাকে C++ এ x^y (x শক্তি y পর্যন্ত উত্থিত) হিসাবে প্রকাশ করা যায় কিনা তা পরীক্ষা করুন

  3. একটি বড় সংখ্যা C++ এ 20 দ্বারা বিভাজ্য কিনা তা পরীক্ষা করুন

  4. একটি সংখ্যার শক্তি গণনা করার জন্য C++ প্রোগ্রাম