এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম নিয়ে আলোচনা করব যা একটি সংখ্যা m কে n-এ রূপান্তর করতে ন্যূনতম অপারেশন ব্যবহার করে।
এখানে আমাদের দুটি পূর্ণসংখ্যা m এবং n দেওয়া থাকবে। আমাদের কাজ হলো দেওয়া অপারেশনগুলো কমপক্ষে ব্যবহার করে m কে n-এ রূপান্তর করা।
অনুমোদিত অপারেশন −
দেওয়া সংখ্যাকে ২ দিয়ে গুণ করা
দেওয়া সংখ্যা থেকে ১ বিয়োগ করা
উদাহরণ
#include <bits/stdc++.h> using namespace std; //অ্যাপারেশন সংখ্যা বের করা int convert(int m, int n){ if (m == n) return 0; if (m > n) return m - n; //এই পরিস্থিতিতে রূপান্তর সম্ভব নয় if (m <= 0 && n > 0) return -1; //যখন n বড় এবং বিজোড় if (n % 2 == 1) //m-এ '-1' অপারেশন return 1 + convert(m, n + 1); //যখন n জোড় else //m-এ '*2' অপারেশন return 1 + convert(m, n / 2); } int main(){ int m = 5, n = 11; cout << "Minimum number of operations : " << convert(m, n); return 0; }আউটপুট
Minimum number of operations : 5