用 Python 寫壞掉的計算器
假設我們有一個顯示屏上顯示數字的壞計算器,我們可以執行以下兩種操作——
加倍——這將把顯示屏上的數字乘以 2,或;
遞減——這會將顯示屏上的數字減小 1,
最初,計算器顯示數字 X。我們必須找到顯示數字 Y 所需的最少運算元。
所以如果輸入是 X = 5 而 Y 是 8,那麼輸出將是 2,因為先遞減一次,然後將其加倍
為了解決這個問題,我們將按以下步驟進行——
res := 0
當 Y > X 時
res := res + Y mod 2 + 1
當 Y 為偶數時 Y := Y / 2,否則 (Y + 1) / 2
返回 res + X - Y
示例(Python)
讓我們看看下面的實現來加深理解——
class Solution(object): def brokenCalc(self, X, Y): res = 0 while Y > X: res += Y % 2 + 1 Y = Y // 2 if Y % 2 == 0 else (Y + 1)//2 return res + X - Y ob = Solution() print(ob.brokenCalc(5,8))
輸入
5 8
輸出
2
廣告