水水的劍指offer 16數值的整數次方

2021-10-24 15:30:08 字數 357 閱讀 6687

實現函式double power(double base, int exponent),求base的exponent次方。不得使用庫函式,同時不需要考慮大數問題。

一開始就直接遞迴,因為我菜。然後學習了一波,感嘆自己為啥沒想到。

方法是所謂快速冪,說白了就是乙個分而治之。感覺二路遞迴和迭代都可以做,先放乙個迭代版本的:

class solution 

return x*res;

}};

需要注意的就是他的測試案例裡面有乙個0.00001 2147483647,所以必須給他弄成long型,要不int放不下。這裡面那個res很有趣,就是那種破壞對稱性的就勇哥計數器這樣的給他弄了。 

劍指Offer 16 數值的整數次方

實現函式double power double base,int exponent 求base的exponent次方,不得使用庫函式。同時不需要考慮大數問題。看到乘方,自然想到二分加速的方法。但是這個題關注的不是速度,而是考慮問題的全面性。比如幾個邊界情況,base 0,exp 0 的時候。時間複雜...

劍指offer16 數值的整數次方

題目 實現函式double power double base,int exponent 求base的exponent次方,不得使用庫函式,同時不需要考慮大數問題。一 第一種方法大體分為以下四種情況 1 底數為0,則返回0 2 底數不為0,若指數為0,則返回1 3 底數不為0,若指數為正數,呼叫po...

劍指offer 16 數值的整數次方

保證base和exponent不同時為0 分析 注意考慮特殊情況,當底數為0,如果指數是正整數,則可以返回1,如果底數為0,指數是負整數,那麼就會出錯,而且如果底數不是0,指數是負整數,則返回的應該是底數和正整數運算結果的倒數。因此要考慮齊全。double powerwithunsignedexpo...