美文网首页
分治求幂

分治求幂

作者: 狗尾巴草败了 | 来源:发表于2017-08-20 23:06 被阅读0次

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方

public double Power(double base, int n) {
    double res = 1,curr = base;
    int exponent;
    if(n>0){
        exponent = n;
    }else if(n<0){
        if(base==0)
            throw new RuntimeException("分母不能为0"); 
        exponent = -n;
    }else{// n==0
        return 1;// 0的0次方
    }
    while(exponent!=0){
        if((exponent&1)==1)
            res*=curr;
        curr*=curr;// 翻倍
        exponent>>=1;// 右移一位
    }
    return n>=0?res:(1/res);       
}

相关文章

  • 分治求幂

    给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方

  • 快速幂

    常规求幂 快速求幂(一般) 快速求幂 (递归) 快速求幂(位运算) 快速求幂(位运算,更简洁)

  • 分治法的常见问题

    计算x的n次幂 朴素算法:xxx...... 分治算法: n为偶数:x的n/2次幂*x的n/2次幂 n为奇数:x的...

  • LeetCode 力扣 50. Pow(x, n)

    题目描述(中等难度) 就是求幂次方。 解法一 求幂次方,用最简单的想法,就是写一个 for 循环累乘。 至于求负幂...

  • 幂乘算法(分治法)

    原理参见 屈婉玲老师 算法设计与分析 ORZ

  • 求幂、快速幂运算

    对一个给定的数计算乘幂。这一过程的参数是一个基数b和一个正整数的指数n,过程计算出b ^ n。一种方式是通过下面这...

  • Leetcode-50: Pow(x,n)

    ** 题目描述:**实现 [pow(x, n)],即计算 x 的 n 次幂函数。 思路:采用分治的思想,将n次幂转...

  • 二分求幂

    二分求幂法是快速计算形如 的求幂运算的方法。朴素计算 的方式是将 连乘 次,代码如下: 这需要计算 次,...

  • Python 运算符

    一. 运算符 +, -, *, /, **(幂运算), < , >, !=,<=, >=, ==, //(求余的整...

  • 数据结构-二分法求幂-C

    二分法求幂 数据结构中二分法运用到求幂提高计算效率方式,算法精简这里做个简单解释及代码 原理自析 如求2^32: ...

网友评论

      本文标题:分治求幂

      本文链接:https://www.haomeiwen.com/subject/nyuqdxtx.html