数组的整数次方(快速幂算法)

数值的整数次方

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

public class Solution {
    public double Power(double base, int exponent) {
//         if(base==0)return 0;
//         if(exponent==0)return 1;
//         if(exponent<0)base=1/base;

//         double n=1;
//         while(exponent!=0){
//             n*=base;
//             if(exponent>0)exponent--;
//             else ++exponent;
//         }
//         return n;

//         if(base==0)return 0;
//         if(exponent==0)return 1;
//         int n=Math.abs(exponent);
//         double result=1.0;
//         while(n>0){
//             if(n%2!=0){
//                 result*=base;
//                 n--;
//             }
//             base*=base;
//             n=n/2;
//         }
//         if(exponent<0)return 1/result;
//         return result;

        if(base==0)return 0;
        if(exponent==0)return 1;
        int n=exponent>0?exponent:(-1)*exponent;
        double result=1;
        while(n>0){
            if(n%2!=0)result*=base;
            base*=base;
            n=n>>1;
        }
        if(exponent<0)return 1.0/result;
        return result;
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
06-20 14:55
点赞 评论 收藏
分享
仁者伍敌:难怪小公司那么挑剔,让你们这些大佬把位置拿了
点赞 评论 收藏
分享
刘湘_passion:太强了牛肉哥有被激励到
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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