题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
注意点:
- double类型base的计算:首先将小数点后移到末尾。比如,计算12.3,将12.3转换为123.0
- 计算123的k次方后,再按照比例还原该数
- 注意k小于0的情况
double Power(double base, int exponent) {
int count_10 = 0;
int exponent_flag = 1;
while(base-(int)base)
{
base = base * 10;
count_10++;
}
if(exponent < 0)
{
exponent_flag = -1;
}
exponent = exponent * exponent_flag;
int pow1 = pow((int)base,exponent);
//if(count_10 == 0)
int m = pow(10,count_10);
int k = pow(m,exponent);
double pow2 = (double)pow1/k;
if(exponent_flag == -1)
{
pow2 = 1.0/pow2;
}
return pow2;
}
网友评论