-
[16953] A → BBOJ 2021. 10. 4. 15:01
https://www.acmicpc.net/problem/16953
16953번: A → B
첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다.
www.acmicpc.net
<문제>
A부터 출발하면 언제 1을 붙여야 하는지를 알기 어렵지만 B부터 출발하면 언제 1을 붙였을지는 자명하다.
현재가 21이라는 상태라고 생각해보면 이 다음이 42인지, 211인지를 판단하는건 어렵지만
이전에 10.5라는 수는 정수가 아니므로, 2에서 출발했다는 한가지 경우밖에 남지 않는다.
이는 일의자리가 1인 모든 경우까지 확장이 가능하다.
<소스코드>
123456789101112131415161718192021222324252627#include <bits/stdc++.h>using namespace std;typedef unsigned long long ull;ull a, b;int main(void) {cin >> a >> b;int answer = 1;while (1) {if (a == b) break;if (a > b) {cout << "-1";return 0;}if (b % 10 == 1) {b = b / 10;} else if (b % 2 == 0) {b /= 2;} else {cout << "-1";return 0;}answer++;}cout << answer;return 0;}cs 'BOJ' 카테고리의 다른 글
[2720] 세탁소 사장 동혁 (0) 2021.10.05 [1449] 수리공 항승 (0) 2021.10.04 [1080] 행렬 (0) 2021.10.03 [1744] 수 묶기 (0) 2021.10.03 [1059] 좋은 구간 (0) 2021.10.03