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

数值的整数次方

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;
    }
}
全部评论

相关推荐

07-03 16:14
嘉应学院 Python
点赞 评论 收藏
分享
代码不跑我跑_bug...:北大杀完9✌杀,9✌杀完鼠鼠杀
你最希望上岸的公司是?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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