0
点赞
收藏
分享

微信扫一扫

每日一练(剑指offer)数值的整数次方

描述

实现函数 double Power(double base, int exponent),求base的exponent次方。

注意:

1.保证base和exponent不同时为0。

2.不得使用库函数,同时不需要考虑大数问题

3.有特殊判题,不用考虑小数点后面0的位数。

示例

输入:

2.00000,3

返回值:

8.00000

思路👇👇

既然是求次方,我们🉑做不断累乘就🉑以了,重点是处理负的次方数,因为x的负次方等于,(1/x)的n 次方,因为我们将底数转换为相应的分数,就可以将次方数变回正数。

if(exponent<0){
base=1/base;
exponent=-exponent;
}

具体做法:

1.先处理次方数为负数的情况,将底数化为分数解决。

2.遍历次方数的次数,不断累乘底数。

/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param base double浮点型
* @param exponent int整型
* @return double浮点型
*/
double Power(double base, int exponent ) {
// write code here
//处理负数次方
if(exponent<0){
base=1/base;
exponent=-exponent;
}
//累乘
double ret=1.0;
for(int i=0;i<exponent;i++){
ret=ret*base;
}
return ret;
}

总结✨✨

有思路的,有方法的分析问题🏃‍♂️🏃‍♂️


举报

相关推荐

0 条评论