题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
首先,我觉得这道题思路应该很简单,幂的情况无非是三种:正数、0和负数。当幂是0的时候,直接返回1;当幂是负数的时候,需要先把其转化为正数来处理,然后返回其倒数就可以了;当幂是正数的时候,按照正常的计算方法就可以。实际上这道题主要考察时代码的健壮性——就是对幂的情况的考虑是否周全。下面是实现的代码(已被牛客AC):
package com.rhwayfun.offer;
public class PowerOfDouble {
public double Power(double base, int exponent) {
double result = base;
if(exponent == 0) return 1;
if(exponent > 0){
for (int i = 1; i < exponent; i++) {
result *= base;
}
return result;
}else{
int absExponent = -exponent;
for (int i = 1; i < absExponent; i++) {
result *= base;
}
return 1/result;
}
}
public static void main(String[] args) {
double a = new PowerOfDouble().Power(0.5, -2);
System.out.println(a);
}
}
时间: 2024-09-29 10:56:13