1. 程式人生 > >計算器 (貝殼筆試題)

計算器 (貝殼筆試題)

描述

假設有這樣一個計算器,該計算器只有兩個按鈕,按下第一個按鈕能使顯示數值減少1,按下第二個按鈕能使顯示數值乘以2,當前顯示數值為N,那麼至少要按多少次按鈕才能使顯示數值變成M?

輸入

輸入兩個整數N和M,1≤N,M≤109。

輸出

輸出使顯示數值變成M的最少按按鈕次數。

輸入樣例 1 

4  5                                                                                                                                                                                                     

輸出樣例 1

3                                                                                                                                                                                                            

實現程式碼:


import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

      Scanner in=new Scanner(System.in);
      int count=0;
      int n=in.nextInt();
      int m=in.nextInt();
      while(true)
      {
    	  if(n>=m)
    	  {
    		  count+=n-m;
    		  System.out.println(count);
    		  break;
    	  }
    	  else
    	  {
    		  if(m%2!=0)count++;
    		  m=(int)Math.ceil(m/2.0);
    		  count++;
    	  }
      }

	}

}