इस ट्यूटोरियल में, हम एक प्रोग्राम पर चर्चा करेंगे जो दी गई ऑपरेशन का न्यूनतम संख्या में उपयोग करके संख्या m को n में बदलता है।
इसके लिए हमें दो पूर्णांक m और n दिए जाएंगे। हमारा कार्य पूर्णांक m को n में बदलना है दिए गए ऑपरेशन का कम से कम उपयोग करके।
अनुमत ऑपरेशन -
दिए गए संख्या को 2 से गुणा करें
दिए गए संख्या से 1 घटाएं
उदाहरण
#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 बड़ा है और 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