숫자 a에서
연산1. a=a*2
연산2. a= Integer.palseInt(String.valueof(a)+1)
연산1과 연산2중 선택해서 A가 B가 되도록하는 연산의 횟수를 구하는문제다.
만약 A가 4이고 B가 162일때
A가 연산1을 선택할지 연산2를 선택해야할지 알 수가없다.
이때 생각한 방법은 2가지다.
나는 2번방법을 선택했다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class baekjoon16953 {
public static void main(String[]args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String context = br.readLine();
String[] contextList =context.split(" ");
int A=Integer.parseInt(contextList[0]);
int B=Integer.parseInt(contextList[1]);
int count =0;
while(A<B){
if(B%2==0){
B/=2;
count++;
}
else{
String stringB= String.valueOf(B);
String rastStringB = stringB.substring(stringB.length()-1,stringB.length());
if(rastStringB.equals("1")){
stringB=stringB.substring(0,stringB.length()-1);
count++;
B=Integer.parseInt(stringB);
}
else{
break;
}
}
}
if(A==B){
System.out.println(count+1);
}
else{
System.out.println(-1);
}
}
}