剑指Offer——数值的整数次方
2019-05-14 本文已影响0人
KEEPINUP
题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
时间限制:1秒 空间限制:32768K
代码实现
public class Solution {
public double Power(double base, int exponent) {
double result = 1;
for(int i = 1; i <= Math.abs(exponent); i++){
result = result*base;
}
if(exponent<0){
return 1/result;
}
return result;
}
}
解题思路
题目很简单,就是让我们求一个 double 类型的数的整数次方。这里我们需要考虑 exponent 为 0 和负数还有正数的情况。
任何数的 0 次方结果都为 1:a^0=1
指数为负数的结果和指数为正数的结果互为倒数:a^-n=1/a^n
我们先声明一个 double 类的数 result 为 1,然后对 exponent 取绝对值然后进行 for 循环,每循环一次给 result 乘上一个 base,如果 exponent 是负数的话,对 result 取个倒数。