2011年8月29日 星期一

11567 - Moliu Number Generator

我們來玩一種數值遊戲,給定N的初始值為0,我們要使N等於一個整數S。只允許三種運算方式:
  1. INC:將N加1。
  2. DEC:將N減1。
  3. DBL:將N乘2。
經過一連串運算之後使得N = S,我們要求運算次數最少,例如當S=7,最少需要作5次運算:
  1. INC: N = 0 + 1 = 1
  2. INC: N = 1 + 1 = 2
  3. DBL: N = 2 x 2 = 4
  4. DBL: N = 2 x 4 = 8
  5. DEC: N = 8 - 1 = 7  <--完成!

Input

輸入不會超過200列,每列有一個整數S(0 <= S <= 2^31),並以EOF表示資料結束。


Output

請對每個S,輸出使N=0變為N=S的最少運算數。請你不必考慮運算過程中的溢位問題。


Sample Input

0
1
2
3
10
100
2147483647
2147483648

Sample Output

0
1
2
3
5
9
33
32

原文出處

沒有留言:

張貼留言