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

Python의 깨진 계산기


화면에 숫자가 표시된 고장난 계산기가 있다고 가정하면 두 가지 작업만 수행할 수 있습니다.

  • Double - 디스플레이의 숫자에 2를 곱하거나;

  • Decrement - 표시되는 숫자를 1씩 줄입니다.

처음에 계산기는 숫자 X를 표시합니다. 우리는 숫자 Y를 표시하는 데 필요한 최소 연산 수를 찾아야 합니다.

따라서 입력이 X =5이고 Y가 8인 경우 출력은 2가 됩니다. 감소하면 한 번, 두 배로 증가합니다.

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

  • 해상도 :=0

  • Y> X

    동안
    • res :=res + Y 모드 2 + 1

    • Y :=Y가 짝수이면 Y / 2, 그렇지 않으면 (Y + 1) / 2

  • 리턴 res + X - Y

예제(파이썬)

더 나은 이해를 위해 다음 구현을 살펴보겠습니다. −

class Solution(object):
   def brokenCalc(self, X, Y):
      res = 0
      while Y > X:
         res += Y % 2 + 1
         Y = Y // 2 if Y % 2 == 0 else (Y + 1)//2
      return res + X - Y
ob = Solution()
print(ob.brokenCalc(5,8))

입력

5
8

출력

2