壞了的計算器

2021-10-08 10:46:34 字數 803 閱讀 5567

在顯示著數字的壞計算器上,我們可以執行以下兩種操作:

返回顯示數字 y 所需的最小運算元。

示例1:

輸入:x = 2, y = 3

輸出:2

解釋:先進行雙倍運算,然後再進行遞減運算 .

示例2:

輸入:x = 5, y = 8

輸出:2

解釋:先遞減,再雙倍 .

示例3:

輸入:x = 3, y = 10

輸出:3

解釋:先雙倍,然後遞減,再雙倍 .

示例4:

輸入:x = 1024, y = 1

輸出:1023

解釋:執行遞減運算 1023 次

解題思路:因為x可以乘2或者減1,反過來就是y可以除2或者加1,那我們就從y出發,貪心的選擇除2操作就可以了,問題是該如何貪心

也就是說,當y為偶數時,我們執行除法操作,當y為奇數時,我們執行加法操作,之後,我們需要執行x-y次加法操作得到x

**如下:

class solution 

return ans + x - y;

}}

感覺貪心演算法有點難以理解,這道題我在做的時候已經意識到,x的每一次減法在多次的乘2操作後會變得更有"價值",但是我卻不知道,應該怎麼貪心,也就是為什麼我不要進行乘法反而進行減法,而且我應該減去多少,這個減法是否有價值,是否會對結果產生正向的影響,我覺得這是貪心演算法難的地方

leetcode 991 壞了的計算器

在顯示著數字的壞計算器上,我們可以執行以下兩種操作 最初,計算器顯示數字x。返回顯示數字y所需的最小運算元。示例 1 輸入 x 2,y 3輸出 2解釋 先進行雙倍運算,然後再進行遞減運算 示例 2 輸入 x 5,y 8輸出 2解釋 先遞減,再雙倍 示例 3 輸入 x 3,y 10輸出 3解釋 先雙倍...

比簡易計算器更簡便的計算器???

看到了乙個大佬博主發的用c語言做的簡便計算器,看了之後覺得還是很麻煩,太多行了。後來就自己試著做了乙個,減了幾十行 不包括視覺優化 萌新勿噴,謝謝。那個大佬博主用了好多我還不太會打的 但是我覺得完全沒有必要。不知道是不是我想的太簡單,但是我打的 和他打的 效果完全沒有任何區別。好吧但是人家可以炫技我...

簡單的計算器

using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system.text u...