কম্পিউটার টিউটোরিয়াল

C++-এ একটি বড় সংখ্যা থেকে সব ৩-অঙ্কের পুনরাবৃত্ত সংখ্যা প্রিন্ট করা

এই সমস্যায় একটি সংখ্যা দেওয়া আছে। এবং আমাদের সেটি থেকে সব ৩-অঙ্কের পুনরাবৃত্ত সংখ্যা প্রিন্ট করতে হবে।

উদাহরণ

ইনপুট: 98769876598765
আউটপুট:
987: 3 বার
876: 3 বার
765: 2 বার

এই সমস্যাটি সমাধানের জন্য বড় সংখ্যাটি স্ট্রিং হিসেবে সংরক্ষণ করা হবে। সংখ্যার অঙ্কগুলো ক্যারেক্টার হিসেবে গণনা করা হবে। প্রথম তিনটি অঙ্ক চেক করে তারপর ৩ নম্বর ইন্ডেক্স থেকে শেষ পর্যন্ত নতুন সংখ্যা তৈরি করা হবে। এরপর পরের ৩-অঙ্কের সংখ্যাগুলো চেক করে তাদের ফ্রিকোয়েন্সি গণনা করা হবে। শেষে যেসব ৩-অঙ্কের সংখ্যার ফ্রিকোয়েন্সি ১-এর বেশি সেগুলো প্রিন্ট করা হবে।

বাস্তবায়ন

#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 repeating numbers are :\n"; 
    printRepeatingNumber(num); 
    return 0; 
}

আউটপুট

All 3 digit repeating numbers are :
765: 2 times
876: 3 times
987: 3 times
  1. সি++-এ ডাডেনি নম্বর

  2. কনভার্সন ছাড়া সংখ্যার সব সাবস্ট্রিং প্রিন্ট করা C++-তে

  3. C++-এ সংখ্যা থেকে একটি ডিজিট বাদ দিয়ে ৬ দিয়ে বিভাজ্য করার পজিশন বের করুন

  4. ৩ এবং ৫ দ্বারা বিভাজ্য সংখ্যা প্রিন্ট (C++)