কম্পিউটার

একটি প্রদত্ত মোবাইল নম্বর C++ এ অভিনব কিনা তা পরীক্ষা করুন


আমাদের একটি 10 ​​সংখ্যার মোবাইল নম্বর আছে, আমাদের কাজ হল নম্বরটি অভিনব নম্বর কিনা তা পরীক্ষা করা। অভিনব নম্বরের জন্য তিনটি ভিন্ন শর্ত রয়েছে। যদি অন্তত একটি সত্য হয়, তাহলে সংখ্যাটি অভিনব। এই শর্তগুলো নিচের মত -

  • একটি একক সংখ্যা পরপর তিনবার আসে, যেমন 555
  • তিনটি পরপর সংখ্যা হয় ক্রমবর্ধমান বা হ্রাস ক্রমে যেমন 123 বা 321৷
  • একটি সংখ্যায় একটি সংখ্যা চার বা তার বেশি বার আসে, যেমন 8965499259, এখানে 9 এসেছে চারবার।

অভিনব নম্বরের একটি উদাহরণ হল 9859009976, এটি একটি অভিনব নম্বর কারণ তৃতীয় শর্তটি পূরণ করে৷

আমরা সংখ্যাটিকে স্ট্রিং হিসাবে নেব, শর্ত তিনের জন্য, প্রতিটি সংখ্যার ফ্রিকোয়েন্সি গণনা করুন, এখানে হ্যাশিংয়ের একটি মৌলিক ধারণা ব্যবহার করা হয়েছে।

উদাহরণ

#include <iostream>
#define N 5
using namespace std;
bool consecutiveThreeSameDigits(string s) {
   for (int i = 0; i < s.size() - 2; i++) {
      if (s[i] == s[i + 1] && s[i + 1] == s[i + 2])
         return true;
   }
   return false;
}
bool incDecThree(string s) {
   for (int i = 0; i < s.size() - 2; i++) {
      if ((s[i] < s[i + 1] && s[i + 1] < s[i + 2]) || (s[i] > s[i + 1] && s[i + 1] > s[i + 2]))
      return true;
   }
   return false;
}
bool fourOccurrence(string s) {
   int freq[10];
   for(int i = 0; i < 10; i++)
      freq[i] = 0;
   for (int i = 0; i < s.size(); i++)
      freq[s[i] - '0']++;
   for (int i = 0; i < 9; i++)
      if (freq[i] >= 4)
         return true;
      return false;
}
bool isFancyNumber(string s) {
   if (consecutiveThreeSameDigits(s) || incDecThree(s) || fourOccurrence(s))
      return true;
   else
      return false;
}
int main() {
   string s = "7609438921";
   if (isFancyNumber(s))
      cout << "This is fancy number";
   else
      cout << "This is not a fancy number";
}

আউটপুট

This is fancy number

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

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

  3. C++ এ N একটি পঞ্চভুজ সংখ্যা কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

  4. আর্মস্ট্রং নম্বর চেক করতে C++ প্রোগ্রাম