题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
解题思路
- xn = (x * x)n/2 n%2 = 0;
- xn = x * (x2)n/2 n%2 = 1;
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
public class { public double Power(double base, int exponent) { if (exponent == 0){ return 1; } if (exponent == 1){ return base; } boolean isNegative = false; if (exponent < 0) { exponent = -exponent; isNegative = true; } double pow = Power(base * base, exponent / 2); if (exponent % 2 != 0){ pow = pow * base; } return isNegative ? 1 / pow : pow; } }
|
近期评论