50. Pow(x, n)**

来源:互联网 发布:大数据相关技术 编辑:程序博客网 时间:2024/05/17 01:15

Implement pow(xn).

  1. nest myPow

double myPow(double x, int n) {    if(n<0) return 1/x * myPow(1/x, -(n+1));    if(n==0) return 1;    if(n==2) return x*x;    if(n%2==0) return myPow( myPow(x, n/2), 2);    else return x*myPow( myPow(x, n/2), 2);}
  1. double myPow

double myPow(double x, int n) {     if(n==0) return 1;    double t = myPow(x,n/2);    if(n%2) return n<0 ? 1/x*t*t : x*t*t;    else return t*t;}
  1. double x

double myPow(double x, int n) {     if(n==0) return 1;    if(n<0){        n = -n;        x = 1/x;    }    return n%2==0 ? myPow(x*x, n/2) : x*myPow(x*x, n/2);}
  1. iterative one

double myPow(double x, int n) {     if(n==0) return 1;    if(n<0) {        n = -n;        x = 1/x;    }    double ans = 1;    while(n>0){        if(n&1) ans *= x;        x *= x;        n >>= 1;    }    return ans;}
  1. bit operation

0 0
原创粉丝点击