剑指offer-数值的整数次方-Java简单和易于理解的递归方法,时间超越99%

数值的整数次方

http://www.nowcoder.com/questionTerminal/1a834e5e3e1a4b7ba251417554e07c00

public class Solution {
    public double Power(double base, int exponent) {
        return exponent > 0 ? quickPow(base, exponent) : quickPow(1/base, -exponent);
    }

    public double quickPow(double base, int exp) {
        if(exp == 0) {
            return 1;
        }
        if(exp == 1) {
            return base;
        }
        return Power(base, exp/2)*Power(base, exp - exp/2);
    }
}

因为所有数往下除以2最后都能被分解为1和0,所以对于0次幂,返回1,对于1次幂返回base,剩下的就除以二往下分解。
负数次幂就是把base变为1/base,然后-exp次幂即可

全部评论

相关推荐

05-27 14:57
西北大学 golang
强大的社畜在走神:27届真不用急,可以搞点项目、竞赛再沉淀沉淀,我大二的时候还在天天打游戏呢
投递华为等公司10个岗位
点赞 评论 收藏
分享
06-26 15:33
青岛工学院 Java
积极的秋田犬要冲国企:他现在邀请我明天面试
点赞 评论 收藏
分享
评论
10
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务