मान लीजिए हमारे पास एक संख्या start और एक अन्य संख्या end है (start < end), हमें start को end में बदलने के लिए आवश्यक न्यूनतम संक्रियाओं की संख्या ढूंढनी है इन संक्रियाओं का उपयोग करके:
- 1 से बढ़ाएं
- 2 से गुणा करें
उदाहरण के लिए, यदि इनपुट है start = 5, end = 11, तो आउटपुट होगा 2, क्योंकि हम 2 से गुणा करके 10 प्राप्त कर सकते हैं, फिर 1 जोड़कर 11 प्राप्त कर सकते हैं।
हल करने के चरण
ct := 0- जब तक
end/2 >= start:- यदि
end % 2 == 1, तो:end := end - 1end := end/2ct := ct + 2
- अन्यथा:
end := end/2ct := ct + 1
- यदि
ct := ct + (end - start)ctलौटाएं।
उदाहरण
class Solution:
def solve(self, start, end):
ct = 0
while end/2 >= start:
if end % 2 == 1:
end -= 1
end = end/2
ct += 2
else:
end = end/2
ct += 1
ct += (end - start)
return ct
ob = Solution()
print(ob.solve(5, 11))
इनपुट
5, 11
आउटपुट
2