实现函数 double Power(double base, int exponent),求base的exponent次方。
注意:
1.保证base和exponent不同时为0。
2.不得使用库函数,同时不需要考虑大数问题
3.有特殊判题,不用考虑小数点后面0的位数。
数据范围:∣base∣≤100 ,∣exponent∣≤100 ,保证最终结果一定满足∣val∣≤10^4
进阶:空间复杂度 O(1) ,时间复杂度 O(n)
示例1
输入:2.00000,3
返回值:8.00000
示例2
输入:2.10000,3
返回值:9.26100
示例3
输入:2.00000,-2
返回值:0.25000
说明:2的-2次方等于1/4=0.25
- import java.util.*;
- public class Solution {
- public double Power(double base, int exponent) {
- if (exponent == 0) {
- return 1;
- }
-
- int sign = 1;
- int num = exponent;
-
- if (exponent < 0) {
- sign = -1;
- num = 0-exponent;
- }
-
- double res = 1;
- while (num-- > 0) {
- res *= base;
- }
-
- if (sign == -1) {
- return (double)1 / res;
- }
-
- return res;
- }
- }
按照指数大小将底数相乘,如果是负数就按照指数的绝对值,得到结果后用1除以结果。
注意该用double的地方就用double,否则会导致结果取整。