/*
* base的exponent次方,这里要考虑exponent的正负问题
* 我们用两种方法来解决,递归和循环
*/
public static double Power(double base, int exponent) {
//若指数为负数
if(exponent < 0)
{
double sum = 1/base;
//指数-2为递归出口
if(exponent == -2)
{
return sum = sum * 1 / base;
}
else
{
//指数+1递归
return sum * Power(base,exponent + 1);
}
}
//若指数为0,返回1
if(exponent == 0)
{
return 1;
}
else {
//指数为正的递归
double sum = base;
if (exponent == 2) {
return sum * base;
} else {
return sum * Power(base, exponent - 1);
}
}
}
/*
* 循环处理
*/
public static double Power2(double base,int exponent)
{
//若指数为0,返回1
if(exponent == 0)
{
return 1;
}
//若指数小于0
if(exponent < 0)
{
//base置为倒数
base = 1 / base;
double sum = 1;
for (int i = 0; i < -exponent; i++) {
sum = sum * base;
}
return sum;
}
//若指数大于0
else
{
double sum = 1;
for (int i = 0; i < exponent; i++) {
sum = sum * base;
}
return sum;
}
}
给出double底数求int的次方的递归和循环方法
最新推荐文章于 2022-03-04 18:13:29 发布