進階班例題
整數轉換步數
時間限制 1000 ms · 記憶體限制 256 MB · C++
給定兩個整數 $A$ 與 $B$,你可以對 $A$ 執行以下任一操作:
- 將目前數值加一($x \to x + 1$)
- 將目前數值減一($x \to x - 1$)
- 將目前數值乘二($x \to 2x$)
請問最少需要幾步,才能從 $A$ 變成 $B$?
保證 $0 \leq A, B \leq 10^5$。
輸入說明
- 輸入一行,包含兩個整數 $A, B$。
- $0 \leq A, B \leq 10^5$
輸出說明
輸出最少需要幾步。
範例
範例輸入 1
2 5
範例輸出 1
2
範例輸入 2
4 6
範例輸出 2
2
範例輸入 3
10 1
範例輸出 3
9
C++77 / 50,000
「跑範例測資」只跑題目敘述上的範例,會顯示你的輸出與正確答案的對照; 「提交評測」會跑完整的測資並給實際結果,但不會顯示測資內容。兩者都不需要帳號,也不會留下成績紀錄。