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

C++ ব্যবহার করে দৈর্ঘ্য L-এর ম্যাজিক্যাল স্ট্রিং জোড়ার সংখ্যা বের করা

ধরি দুটি স্ট্রিং str1 এবং str2 আছে, আমাদের দৈর্ঘ্য L-এর ম্যাজিক্যাল জোড়ার সংখ্যা বের করতে হবে। দুটি স্ট্রিং ম্যাজিক্যাল হব যদি প্রতিটি ইনডেক্স i-তে str1[i] < str2[i] হয়। যেহেতু সংখ্যাটি খুব বড় হতে পারে, তাই মডুলো 10⁹ দিয়ে উত্তর দিতে হবে। স্ট্রিংগুলিতে শুধু ছোট হাতের অক্ষর থাকবে।

অ্যাপ্রোচটি সহজ। L = 1 হলে, str1-এ 'a' থাকলে str2-এ 'b' থেকে 'z' পর্যন্ত ২৫ কম্বিনেশন, পরের ক্যারেক্টারের জন্য ২৪, মোট 25 + 24 + ... + 1 = 325। L = 2 হলে 325²। দৈর্ঘ্য L-এর জন্য 325^L। যদি বড় হয় তবে মডুলো 10⁹ নিয়ে বের করুন।

উদাহরণ কোড

#include <iostream>
#include <cmath>
using namespace std;

int power(int a, unsigned int b, int mod) {
    int res = 1;
    a = a % mod;
    while (b > 0) {
        if (b & 1)
            res = (res * a) % mod;
        b = b >> 1;
        a = (a * a) % mod;
    }
    return res;
}

int main() {
    int L = 2, P = pow(10, 9);
    int res = power(325, L, P);
    cout << "Combinations: " << res << endl;
}

আউটপুট

Combinations: 105625
  1. C++-এ স্ট্রিংয়ে ৬ দিয়ে বিভাজ্য সাবস্ট্রিং গণনা

  2. C++ দিয়ে বাইনারি অ্যারেতে শূন্যের সংখ্যা বের করা

  3. C++ দিয়ে একটি স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা

  4. স্ট্রিংয়ের দৈর্ঘ্য (Length) বের করার C++ প্রোগ্রাম