剑指offer——数值的整数次方
题目描述:
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
我的错误解法:
public class Solution {
public double Power(double base, int exponent) {
if(exponent==0){
return 1;
}
if(exponent>0){
for(int i=1;i<=exponent;i++){
base*=base;//error!!!!!!
}
return base;
}
else{
for(int j=-1;j>=exponent;j--){
base=1/base;//error!!!!!!
}
return base;
}
}
}
我的错误解法2:
public class Solution {
public double Power(double base, int exponent) {
double result=1;
if(exponent==0){
return 1;
}
if(exponent>0){
for(int i=1;i<=exponent;i++){
result*=base;
}
return result;
}
else{
for(int j=-1;j>=exponent;j--){
result=1/(base*result);//这里出错了!!!!!!
}
return result;
}
}
}
我的正确解法:
public class Solution {
public double Power(double base, int exponent) {
double result=1,a=1;
if(exponent==0){
return 1;
}
if(exponent>0){
for(int i=1;i<=exponent;i++){
result*=base;
}
return result;
}
else{
for(int j=-1;j>=exponent;j--){
a*=base;
}
result=1/a;
return result;
}
}
}