숫자 시작과 다른 숫자 끝(start
- 1씩 증가
- 2 곱하기
따라서 입력이 start =5, end =11과 같으면 출력은 2가 됩니다. 2를 곱하여 10을 얻은 다음 1을 더하여 11을 얻을 수 있기 때문입니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- ct:=0
- while end/2>=시작, 수행
- end mod 2가 1과 같으면
- 끝 :=끝 - 1
- 끝 :=끝/2
- ct :=ct + 2
- 그렇지 않으면
- 끝:=끝/2
- ct :=ct + 1
- end mod 2가 1과 같으면
- ct :=ct +(끝-시작)
- 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