[leetcode] Pow(x, n)
生活随笔
收集整理的這篇文章主要介紹了
[leetcode] Pow(x, n)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Pow(x, n)
Implement pow(x,?n).?
思路:
分治算法,2^4=(2^2)*(2^2)。整體的思路就是這樣,要注意考慮n為負數的情況。我的做法是在寫一個函數計算乘方,原來的函數根據n的正負選擇如何調用power函數。開始的時候,沒有用tmp保存power(x,n/2)的值,直接寫成power(x,n/2)*power(x,n/2),會超時,改了之后就好了。因為如果不保存,同一個數據會算很多遍,有大量的時間被浪費在計算相同的結果上了。
題解:
class Solution { public:double power(double x, int n) {if(n==0)return 1.0;if(n==1)return x;double tmp = power(x, n/2);if(n%2==0)return tmp*tmp;elsereturn x*tmp*tmp;}double pow(double x, int n) {if(n>0)return power(x,n);elsereturn 1.0/power(x,-n);} }; View Code?
轉載于:https://www.cnblogs.com/jiasaidongqi/p/4218137.html
總結
以上是生活随笔為你收集整理的[leetcode] Pow(x, n)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visual C#之核心语言
- 下一篇: RHCE 学习笔记(22) 网络用户