Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 Target에 도달하는 데 필요한 주어진 작업 수를 찾는 프로그램

<시간/>

두 개의 값 시작과 끝이 있다고 가정하고 시작에서 끝으로 변환하는 데 필요한 최소 작업 수를 다음 작업을 사용하여 찾아야 합니다.

  • 1 감소

  • 2를 곱합니다.

따라서 입력이 start =2, end =7과 같으면 출력은 3이 됩니다. 2를 곱하여 4를 얻은 다음 2를 곱하여 8을 얻은 다음 1을 빼서 7을 얻을 수 있기 때문입니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 답변 :=0

  • 다음을 무한히 수행하십시오.

    • 종료 <=시작이면

      • 반환 + 시작 - 끝

    • 그렇지 않으면 끝이 홀수이면

      • 끝 :=끝 + 1, ans :=ans + 1

    • 그렇지 않으면

      • end :=끝의 몫 / 2

      • ans :=ans + 1

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

예시

class Solution:
   def solve(self, start, end):
      ans = 0
      while True:
         if end <= start:
            return ans + start - end
         elif end % 2:
            end += 1
            ans += 1
         else:
            end //= 2
            ans += 1
ob1 = Solution()
start = 2
end = 7
print(ob1.solve(start, end))

입력

2, 7

출력

3