কম্পিউটার

C++ এ একাধিক অনুরূপ সংখ্যা ধারণ করে n-এর চেয়ে কম পূর্ণসংখ্যা খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের একটি পূর্ণসংখ্যা n আছে, আমাদের ধনাত্মক পূর্ণসংখ্যার সংখ্যা খুঁজে বের করতে হবে যা n-এর থেকে কম বা সমান, যেখানে পূর্ণসংখ্যা সংখ্যার অন্তত একটি সংখ্যা একাধিকবার ঘটছে।

সুতরাং, যদি ইনপুট n =200 এর মত হয়, তাহলে আউটপুট হবে 38

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int solve(int n) {
   vector<int> a;
   for (int x = n; x; x /= 10) a.push_back(x % 10);
   reverse(a.begin(), a.end());
   int ret = n;
   for (int w = 1, d = 1; w < a.size(); ++w) {
      d *= min(9, 10 − w + 1);
      ret −= d;
   }
   auto go = [&]() {
      int b = (1 << 10) − 1;
      for (int i = 0; i < a.size(); ++i) {
         for (int d = (i < 1); d < a[i]; ++d) {
            int x = 0;
            if ((1 << d) & b) ++x;
               for (int j = i + 1; j < a.size(); ++j) x *= 10 − j;
               ret −= x;
            }
            if ((1 << a[i]) & b)
            b ^= (1 << a[i]);
            else
            return;
         }
         −−ret;
      };
      go();
      return ret;
}
int main(){
   cout << solve(200) << endl;
   return 0;
}

ইনপুট

200

আউটপুট

38

  1. একটি গ্রাফে সুপার শীর্ষবিন্দুগুলি খুঁজে বের করার জন্য C++ প্রোগ্রাম

  2. C++ প্রোগ্রাম প্রদত্ত পূর্ণসংখ্যা থেকে সর্বাধিক সম্ভাব্য ট্যালি বের করতে

  3. একটি গ্রিডে আলোকিত কোষের সংখ্যা খুঁজে বের করার জন্য C++ প্রোগ্রাম

  4. C++ এ n এর থেকে কম বা সমান সমস্ত ফ্যাক্টরিয়াল সংখ্যা খুঁজুন