কম্পিউটার

প্রদত্ত সংখ্যার চেয়ে কঠোরভাবে কম একটি সংখ্যা প্রিন্ট করুন যাতে এর সমস্ত সংখ্যা C++ এ স্বতন্ত্র হয়


এই সমস্যায়, আমাদের একটি নম্বর দেওয়া হয়েছে n। আমাদের কাজ হল n-এর চেয়ে কম বড় সংখ্যাটি প্রিন্ট করা যাতে এর সমস্ত সংখ্যা আলাদা হয়।

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক

Input: n = 2332
Output: 2319

এই সমস্যাটি সমাধান করার জন্য, আমরা সংখ্যার গণনাকে বিপরীত করি, অর্থাৎ n থেকে 0 পর্যন্ত। এবং স্বতন্ত্র সংখ্যা সহ সংখ্যার জন্য পরীক্ষা করুন, যদি বর্তমান গণনার মান শর্তটি পূরণ করে তবে এটি মুদ্রণ করুন এবং লুপটি শেষ করুন। অন্যথায় লুপ চালিয়ে যান। লুপ চালানোর সর্বোচ্চ সংখ্যা সর্বদা n-এর চেয়ে কম।

উদাহরণ

আমাদের সমাধান বাস্তবায়নের জন্য প্রোগ্রাম,

#include <bits/stdc++.h>
using namespace std;
int findDistinctDigitNumber(int n) {
   for (int i = n - 1; i>=0 ; i--) {
      int count[10] = { 0 };
      int x = i;
      int count1 = 0, count2 = 0;
      while (x) {
         count[x % 10]++;
         x /= 10;
         count1++;
      }
      for (int j = 0; j < 10; j++) {
         if (count[j] == 1)
            count2++;
      }
      if (count1 == count2)
      return i;
   }
}
int main() {
   int n = 44324;
   cout<<"Number less than "<<n<<" with all digits distinct are : "<<findDistinctDigitNumber(n);
   return 0;
}

আউটপুট

Number less than 44324 with all digits distinct are : 43987

  1. C++ এ একটি মিন হিপে x মানের চেয়ে কম সব নোড প্রিন্ট করুন

  2. একটি অ্যারে উপাদান খুঁজুন যাতে সমস্ত উপাদান এটি দ্বারা c++ ব্যবহার করে বিভাজ্য হয়

  3. C++ ব্যবহার করে x-এর যোগফল এবং এর অঙ্কগুলো n-এর সমান হয় এমন একটি সংখ্যা খুঁজুন।

  4. x এর সমষ্টি এবং এর সংখ্যা C++ এ দেওয়া n-এর সমান