您的位置:首页 > 其它

let 50 Pow(x,n)

2018-01-10 22:31 141 查看
主题思想: n 的取值范围 n<0, 0, n>0

快速幂算法


public double quickPow(double x,int n){
if(n==0) return 1.0000;
double ans=1.0;
while(n!=0){

if(n%2!=0){
ans=ans*x;
}
x*=x;
n/=2;
}
return ans;
}


考虑问题:

AC代码:

class Solution {
public double myPow(double x, int n) {

boolean divide= n<0? true: false;
n=Math.abs(n);
double ans=quickPow(x,n);
if(divide)
ans=1.0/ans;
return ans;
}

public double quickPow(double x,int n){ if(n==0) return 1.0000; double ans=1.0; while(n!=0){ if(n%2!=0){ ans=ans*x; } x*=x; n/=2; } return ans; }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: