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

সি++ কোড: c এবং d বানাতে ন্যূনতম অপারেশন সংখ্যা বের করুন

দুটি সংখ্যা c এবং d দেওয়া আছে। অমলের দুটি সংখ্যা a এবং b শুরুতে ০। অমল কিছু অপারেশন করতে চায়। প্রতিটি অপারেশনের আগে একটি পজিটিভ ইন্টিজার k বেছে নেওয়া হয়, যা ব্যবহার করে নিচের একটি অপারেশন করা হয়:

  • a এবং b উভয়ে k যোগ করা, অথবা
  • a-তে k যোগ, b-তে k বিয়োগ, অথবা
  • b-তে k যোগ, a-তে k বিয়োগ।

a=c এবং b=d করার জন্য ন্যূনতম অপারেশন সংখ্যা বের করতে হবে। অসম্ভব হলে -1।

উদাহরণ

c=3, d=5 → আউটপুট: 2
ব্যাখ্যা: k=1 দিয়ে (1,1), k=8 দিয়ে (-7,9), k=7 দিয়ে (0,2), k=3 দিয়ে (3,5)।

সমাধানের ধাপসমূহ

if (c^d) odd: return -1
else if c==0 and d==0: return 0
else if c==d: return 1
else: return 2

সি++ কোড উদাহরণ

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

int solve(int c, int d) {
    if ((c^d)&1) return -1;
    else if (c==0 && d==0) return 0;
    else if (c==d) return 1;
    else return 2;
}

int main() {
    int c=3, d=5;
    cout << solve(c,d) << endl;
}

ইনপুট

3, 5

আউটপুট

2
  1. সংখ্যাকে সম্পূর্ণ বর্গ করতে ন্যূনতম কত দিয়ে ভাগ করতে হবে তা বের করা C++-তে

  2. C++-এ অ্যারে-এর XOR শূন্য করার জন্য মিনিমাম অপারেশন

  3. C++-এ বাইনারি স্ট্রিং-এ ১ বামে এবং ০ ডানে আনতে মিনিমাম ফ্লিপ

  4. C++-এ অ্যারের GCD কে k-এর গুণিতক বানানোর ন্যূনতম অপারেশন