数值的整数次方

问题描述

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方

思路分析

这里主要的问题就是幂的符号问题,共有三种情况,即正数,0,负数,当幂为0的时候直接返回1,当为正数的时候直接按正常的计算来,当为负数的时候要先把其转化为正数,然后返回结果的倒数就可以了

码上有戏

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public double powOfdouble(double base,int exp){
double result=base;
if(exp==0)
return 1;
if(exp>0)
{
for(int i=1;i<exp;i++){
result*=base;
}
return result;
}
else{
int absexp=-exp;
for(int i=1;i<absexp;i++)
{
result*=base;
}
System.out.println(result);
return 1/result;
}
}

测试

Fib fib=new Fib();
double a=fib.powOfdouble(0.5, -2);
System.out.println(a);

热评文章