কম্পিউটার

C++ এ Y এর চেয়ে কম সংখ্যা সহ সেটের ন্যূনতম সংখ্যা


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

পরপর সংখ্যার একটি স্ট্রিং এবং একটি সংখ্যা Y দেওয়া, কাজটি হল ন্যূনতম সেটের সংখ্যা খুঁজে বের করা যাতে প্রতিটি সেট নীচের নিয়ম অনুসরণ করে −

  • সেটে পরপর সংখ্যা থাকা উচিত
  • কোনও সংখ্যা একবারের বেশি ব্যবহার করা যাবে না।
  • সেটের সংখ্যা Y এর বেশি হওয়া উচিত নয়।

উদাহরণ

যদি str =“1234” এবং Y =20 হয় তাহলে উত্তর হল 3 যেমন নিচের সেট তৈরি করা হয়েছে −

{12} {3} এবং {4}

অ্যালগরিদম

  • স্ট্রিংকে নম্বরে রূপান্তর করুন
  • যদি সংখ্যাটি Y-এর থেকে বেশি না হয়, তাহলে f =1 চিহ্নিত করুন
  • যদি সংখ্যাটি Y ছাড়িয়ে যায়, তাহলে f =1 হলে গণনা বাড়ান এবং f কে 0 হিসাবে পুনরায় আরম্ভ করুন এবং s[i]-'0' বা num 0 হিসাবে শুরু করুন
  • স্ট্রিংটিতে সম্পূর্ণরূপে পুনরাবৃত্তি করার পরে, f 1 হলে গণনা বাড়ান

উদাহরণ

#include <iostream>
#include <string>
using namespace std;
int getMinSets(string str, int y) {
   int cnt = 0;
   int num = 0;
   int l = str.length();
   int f = 0;
   for (int i = 0; i < l; ++i) {
      num = num * 10 + str[i] - 48;
      if (num <= y) {
         f = 1;
         continue;
      }
      if (f) {
         ++cnt;
      }
      num = str[i] - '0';
      f = 0;
      if (num <= y) {
         f = 1;
      } else {
         num = 0;
      }
   }
   if (f) {
      ++cnt;
   }
   return cnt;
}
int main() {
   string str = "1234";
   int y = 20;
   cout << "Minimum sets = " << getMinSets(str, y) << endl;
   return 0;
}

আউটপুট

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

তৈরি করে
Minimum sets = 3

  1. সি++ এ ডুডেনি নম্বর

  2. C++ এ এর ​​থেকে কম সংখ্যার সমস্ত প্রাইম কোয়াড্রুপ্লেট প্রিন্ট করুন

  3. ন্যূনতম সংখ্যা যা N এর থেকে ছোট বা সমান এবং C++ এ যোগফল S সহ

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