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

বিটওয়াইজ অপারেটর ব্যবহার করে দুটি সংখ্যা গুণফল - সি++

বিটওয়াইজ অপারেটর ব্যবহার করে দুটি সংখ্যা গুণফল বের করা যায়। left shift (<<) গুণের জন্য এবং right shift (>>) ভাগের জন্য ব্যবহার হয়।

সূত্র: x * y = (x * 2) * (y / 2) যদি y জোড় হয়, অন্যথায় x * y = (x * 2) * (y / 2) + x।

অ্যালগরিদম

  • দুটি সংখ্যা ইনিশিয়ালাইজ করুন।
  • যখন y > 0:
  • যদি y বিজোড় (y & 1), তবে result += x।
  • x <<= 1 (x দ্বিগুণ)।
  • y >>= 1 (y অর্ধেক)।
  • ফলাফল ফেরত দিন।

সি++ ইমপ্লিমেন্টেশন

#include <bits/stdc++.h>
using namespace std;

int multiplyTwoNumbers(int a, int b) {
    int result = 0;
    while (b > 0) {
        if (b & 1) result += a;
        a <<= 1;
        b >>= 1;
    }
    return result;
}

int main() {
    cout << multiplyTwoNumbers(75, 4) << endl;  // 300
    cout << multiplyTwoNumbers(90, 9) << endl;  // 810
    cout << multiplyTwoNumbers(83, 66) << endl; // 5478
    return 0;
}

আউটপুট

300
810
5478
  1. সি++-এ শর্তাধীন বা বিটওয়াইজ অপারেটর ছাড়া চার সংখ্যার সর্বোচ্চ মান

  2. সি++-এ টার্নারি অপারেটর ব্যবহার করে সর্বোচ্চ সংখ্যা বের করার প্রোগ্রাম

  3. C++ ব্যবহার করে যোগফল n করার জন্য ক্ষমতার পদের ন্যূনতম সংখ্যা বের করা

  4. C++-এ '-' অপারেটর ব্যবহার করে দুটি সংখ্যা যোগ (Operator Overloading)