给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
数值的整数次方
http://www.nowcoder.com/questionTerminal/1a834e5e3e1a4b7ba251417554e07c00
/*
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
保证base和exponent不同时为0
/
方法一:用代码代替常规的数学算法,比较笨的方法。
class Solution {
public:
double Power(double base, int exponent) {
if(base==0)
{
return 0;
}
else if(exponent==0)
{
return 1;
}
else if(exponent==1)
{
return base;
}
else
{
double n=base;
int j=exponent;
exponent=abs(exponent);//对exponent取绝对值
while(exponent>1)
{
base=n;
exponent--;
}
if(j<0)//如果输入时的exponent为负数
{
return 1/base;
}
return base;
}
}
};
方法2:使用pow函数,则会变得非常简单
class Solution {
public:
double Power(double base, int exponent){
double b;
if(exponent>=0){
b=pow(base,exponent);
}
else{
b=pow(base,-exponent);
b=1/b;
}
return b;
}
};