Syntax error Program to find minimum number of operations required to make one number to another in Python

Program to find minimum number of operations required to make one number to another in Python



Suppose we have a number start and another number end (start < end), we have to find the minimum number of operations required to convert start to end using these operations −

  • Increment by 1
  • Multiply by 2

So, if the input is like start = 5, end = 11, then the output will be 2, as we can multiply 2 to get 10, then add 1 to get 11.

To solve this, we will follow these steps −

  • ct:= 0
  • while end/2 >= start, do
    • if end mod 2 is same as 1, then
      • end := end - 1
      • end := end/2
      • ct := ct + 2
    • otherwise,
      • end:= end/2
      • ct := ct + 1
  • ct := ct +(end-start)
  • return ct

Let us see the following implementation to get better understanding −

Example

 Live Demo

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))

Input

5,11

Output

2
Updated on: 2020-10-05T07:31:30+05:30

408 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements