唯品会 一家专门做特卖的网站手机版太原百度关键词优化
实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。
思路
用快速幂的方法进行指数运算,即x^2 = x * x,x^4 = x^2 * x2,x8 = x^4 * x^4……
同时还要考虑特殊值,如底数为1、指数负数、指数为0等
网友解法
public double myPow(double x, int n) {if (x == 1 || n == 0) {return 1;}if (x == 0) {return 0;}long b = n;// 指数小于0,倒数if (b < 0) {x = 1 / x;b = -b;}double res = 1.0;while (b > 0) {if ((b & 1) == 1) {res *= x;}x *= x;b >>= 1;}return res;
}