数组的整数次方(快速幂算法)
数值的整数次方
http://www.nowcoder.com/questionTerminal/1a834e5e3e1a4b7ba251417554e07c00
public class Solution { public double Power(double base, int exponent) { // if(base==0)return 0; // if(exponent==0)return 1; // if(exponent<0)base=1/base; // double n=1; // while(exponent!=0){ // n*=base; // if(exponent>0)exponent--; // else ++exponent; // } // return n; // if(base==0)return 0; // if(exponent==0)return 1; // int n=Math.abs(exponent); // double result=1.0; // while(n>0){ // if(n%2!=0){ // result*=base; // n--; // } // base*=base; // n=n/2; // } // if(exponent<0)return 1/result; // return result; if(base==0)return 0; if(exponent==0)return 1; int n=exponent>0?exponent:(-1)*exponent; double result=1; while(n>0){ if(n%2!=0)result*=base; base*=base; n=n>>1; } if(exponent<0)return 1.0/result; return result; } }