문제1590--숫자 만들기 2

1590: 숫자 만들기 2

[만든사람 : ]
시간제한 : 1.000 sec  메모리제한 : 128 MB  제출 : 1  맞은 사람 : 1

제출  

문제 설명

민철이는 학교 친구와 숫자 만들기 게임을 시작했다.
규칙은 A라는 숫자가 있을 때, B를 몇 번의 계산으로 만드는지를 대결하는 것이다.
만드는 연산의 횟수가 적은 사람이 이긴다.
단, 연산은 단 2가지만 존재한다.
  1. A를 2배 하는 연산
  2. A의 맨 오른쪽에 1을 추가하는 연산
예를 들어
2를 321로 만들기 위해선 2 -> 4 -> 8 -> 16 -> 32로 1번 연산을 4번 하고, 2번 연산으로 맨 오른쪽에 1을 추가하여 32 -> 321로 만들면 된다. 고로 총 5번의 연산이 필요하다.
정수 A와 B가 주어질 때 최소한 몇 번의 연산이 필요한지 구하는 프로그램을 작성하시오.

입력 설명

첫 번째 줄에 양의 정수 A와 B(1 ≤ A ≤ B ≤ 100,000,000)가 공백을 구분으로 주어진다.

출력 설명

최소 연산 횟수를 출력한다.
만들 수 없으면 –1을 출력한다.

입력 예시1 Copy

2 321

출력 예시1 Copy

5

입력 예시2 Copy

1 12

출력 예시2 Copy

-1

입력 예시3 Copy

6 614441

출력 예시3 Copy

12

출처/분류