इस ट्यूटोरियल में, हम दिए गए ऑपरेशनों की न्यूनतम संख्या का उपयोग करके किसी संख्या को m से n में बदलने के लिए एक प्रोग्राम पर चर्चा करेंगे।
इसके लिए हमें दो पूर्णांक m और n दिए जाएंगे। हमारा काम दिए गए संक्रियाओं का कम से कम बार उपयोग करते हुए पूर्णांक m को n में बदलना है।
अनुमत संचालन -
-
दी गई संख्या को 2 से गुणा करें
-
दी गई संख्या में से एक घटाएं
उदाहरण
#include <bits/stdc++.h>
using namespace std;
//finding minimum number of operations required
int convert(int m, int n){
if (m == n)
return 0;
if (m > n)
return m - n;
//can't convert in this situation
if (m <= 0 && n > 0)
return -1;
//when n is greater and n is odd
if (n % 2 == 1)
//performing '-1' on m
return 1 + convert(m, n + 1);
//when n is even
else
//performing '*2' on m
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