数组的整数次方(快速幂算法)
数值的整数次方
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;
}
}
查看5道真题和解析