题目描述:
给定一个 double 类型的浮点数 base 和 int 类型的整数 exponent,求 base 的 exponent 次方。
解:
public static double Power(double base, int exponent) {if (exponent == 0)return 1;if (exponent == 1)return base;// 取正int p = exponent < 0 ? -exponent : exponent;double r = 1.0;while (p > 0) {// 2进制p 末尾与 1if ((p & 1) > 0) {r *= base;}base *= base;// 向右位移p >>= 1;}// 如果 exponent 是负数要取倒数return exponent < 0 ? 1 / r : r;}
