কম্পিউটার

C++ এ একটি খুব বড় সংখ্যায় সমস্ত 3 সংখ্যার পুনরাবৃত্তি সংখ্যা প্রিন্ট করুন


এই সমস্যায়, আমাদের একটি নম্বর দেওয়া হয়েছে। এবং আমাদের সমস্ত 3 সংখ্যার পুনরাবৃত্তি সংখ্যা প্রিন্ট করতে হবে।

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

Input: 98769876598765
Output:
   987: 3 times
   876: 3 times
   765: 2 times

এই সমস্যাটি সমাধান করার জন্য, আমরা স্ট্রিং সংরক্ষণ করা বড় সংখ্যা ব্যবহার করব। সংখ্যার অঙ্কগুলি অক্ষর হিসাবে গণনা করা হয়। এখন, আমরা প্রথম তিনটি সংখ্যা পরীক্ষা করব এবং তারপর 3য় সূচক থেকে শুরু করে শেষ পর্যন্ত একটি নতুন সংখ্যা পাব। এর পরে, আমরা পরবর্তী 3 ডিজিটের সংখ্যাগুলি তার ফ্রিকোয়েন্সি গণনা করার জন্য পরীক্ষা করব। শেষ পর্যন্ত, 1-এর বেশি ফ্রিকোয়েন্সি আছে এমন সমস্ত 3 সংখ্যার সংখ্যাগুলি প্রিন্ট করুন৷

উদাহরণ

নিচের কোডটি আমাদের সমাধান বাস্তবায়ন করবে,

#include <bits/stdc++.h>
using namespace std;
void printRepeatingNumber(string s) {
   int i = 0, j = 0, val = 0;
   map <int, int> threeDigitNumber;
   val = (s[0] - '0') * 100 + (s[1] - '0') * 10 + (s[2] - '0');
   threeDigitNumber[val] = 1;
   for (i = 3; i < s.length(); i++) {
      val = (val % 100) * 10 + s[i] - '0';
      if (threeDigitNumber.find(val) != threeDigitNumber.end()) {
         threeDigitNumber[val] = threeDigitNumber[val] + 1;
      } else {
         threeDigitNumber[val] = 1;
      }
   }
   for (auto number : threeDigitNumber) {
      int key = number.first;
      int value = number.second;
      if (value > 1)
         cout<<key<<": "<<value<<" times\n";
   }
}
int main() {
   string num = "98769876598765";
   cout<<"All 3 digit repreating numbers are :\n";
   printRepeatingNumber(num);
}

আউটপুট

All 3 digit repeating numbers are −
765: 2 times
876: 3 times
987: 3 times

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

  2. C++ এ কোনো রূপান্তর ছাড়াই একটি সংখ্যার সমস্ত সাবস্ট্রিং প্রিন্ট করুন

  3. একটি সংখ্যাকে C++ এ 6 দ্বারা বিভাজ্য করার জন্য মুদ্রণের অঙ্কের অবস্থান মুছে ফেলতে হবে

  4. C++ এ 3 এবং 5 দ্বারা বিভাজ্য সমস্ত সংখ্যা প্রিন্ট করার প্রোগ্রাম