数值的整数次方
实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。
示例 1:
输入: 2.00000, 10 输出: 1024.00000
示例 2:
输入: 2.10000, 3 输出: 9.26100
示例 3:
输入: 2.00000, -2 输出: 0.25000 解释: 2-2 = 1/22 = 1/4 = 0.25
思路:二进制法:

这里必须要使用 long类型替换 n
1 /*数值的整数次方*/ 2 public double myPow(double x, int n) { 3 long N = n; 4 if (N == 0 || x == 1) { 5 return 1.0; 6 } 7 double result = 1.0; 8 if (N < 0) { 9 x = 1 / x; 10 N = -N; 11 } 12 while (N > 0) { 13 if (N % 2 == 1) { 14 result *= x; 15 } 16 x *= x; 17 N = N / 2; 18 } 19 return result; 20 }

浙公网安备 33010602011771号