Pow(x, n)
能够直接用库函数pow(x,n)一步搞定,但明显这样就没意思了。 參考 快 速 幂 取 模
二分。复杂度为O(logn)
递归方法
Pow(x, n)
能够直接用库函数pow(x,n)一步搞定,但明显这样就没意思了。class Solution { public: double myPow(double x, int n) { if(n<0) return 1.0/myPow_1(x,-n); else return myPow_1(x,n); } double myPow_1(double x,int n) { if(n==0) return 1.0; double y=myPow_1(x,n/2); // 不能用n>>1 T_T 不知道什么原因 if(n&1) return y*y*x; else return y*y; } };
class Solution { public: double myPow(double x, int n) { if(n<0){ n=-n; x=1.0/x; } double ans=1; while(n){ if(n&1) ans=ans*x; x=x*x; n=n/2; } return ans; } };