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

দেওয়া মানের চেয়ে কম বিটওয়াইজ AND, OR এবং XOR অপারেশনের সর্বোচ্চ মান বের করার C প্রোগ্রাম

দুটি পূর্ণসংখ্যা k এবং n দেওয়া থাকলে, আমাদের কাজ হল n পরিসীমার মধ্যে থাকা সব সংখ্যা জোড়ার মধ্যে বিটওয়াইজ AND, OR এবং XOR অপারেশন সম্পাদন করা। তারপর k এর চেয়ে ছোট এই তিন অপারেশনের সর্বোচ্চ মানগুলো ফেরত দেওয়া।

উদাহরণ

ইনপুট: n = 5, k = 5 হলে আউটপুট হবে 4 3 4।

সর্বোচ্চ AND মান: 4, সর্বোচ্চ OR মান: 3, সর্বোচ্চ XOR মান: 4 — এবং এগুলো সবই 5-এর চেয়ে ছোট।

এলগরিদম

  1. andMax = 0, orMax = 0, xorMax = 0 ইনিশিয়ালাইজ করুন।
  2. দুটি নেস্টেড লুপ চালিয়ে 1 থেকে n পর্যন্ত সব অনন্য জোড়া (i, j) তৈরি করুন (j = i+1 থেকে শুরু)।
  3. প্রতিটি জোড়ার জন্য value1 = i & j, value2 = i | j, value3 = i ^ j গণনা করুন।
  4. যদি value1 > andMax এবং value1 < k হয়, তবে andMax = value1 আপডেট করুন।
  5. যদি value2 > orMax এবং value2 < k হয়, তবে orMax = value2 আপডেট করুন।
  6. যদি value3 > xorMax এবং value3 < k হয়, তবে xorMax = value3 আপডেট করুন।
  7. শেষে andMax, orMax, xorMax প্রিন্ট করুন।

C কোড উদাহরণ

#include <stdio.h>

void solve(int n, int k) {
    int andMax = 0, orMax = 0, xorMax = 0;
    int value1, value2, value3;

    for (int i = 1; i <= n; i++) {
        for (int j = i + 1; j <= n; j++) {
            value1 = i & j;
            value2 = i | j;
            value3 = i ^ j;

            if (value1 > andMax && value1 < k) andMax = value1;
            if (value2 > orMax && value2 < k) orMax = value2;
            if (value3 > xorMax && value3 < k) xorMax = value3;
        }
    }
    printf("%d %d %d", andMax, orMax, xorMax);
}

int main() {
    solve(5, 5);
    return 0;
}

ইনপুট ও আউটপুট

ইনপুট: 5, 5

আউটপুট: 4 3 4

  1. পাইথনে বাইনারি ট্রি-তে BST-এর সর্বোচ্চ যোগফলের মান বের করার প্রোগ্রাম

  2. পাইথন - তালিকার সব মান একটি দেওয়া মানের চেয়ে ছোট কিনা যাচাই করা

  3. পাইথনে চেক করা: লিস্টের সব মান কি একটি দिये गये ভ্যালুর চেয়ে বড়?

  4. পাইথন প্রোগ্রাম: লিস্টের সব মান দেওয়া মান থেকে বড় কিনা চেক করা