16数值的整数次方

作者: gantrol | 来源:发表于2018-11-17 10:44 被阅读0次

实现函数exp(base, expo),求base的expo次方。不得使用库函数,同时不需要考虑大数问题。


def exp(base, expo):
    if expo == 0: return 1
    elif expo == 1: return base
    elif expo < 0:
        return 1 / exp(base, -expo)

    # if expo % 2 == 0:
    #     return exp(base, expo / 2) * exp(base, expo / 2)
    # elif expo % 2 == 1:
    #     return exp(base, (expo - 1) / 2) * exp(base, (expo - 1) / 2) * exp(base, 1)
    
    result = exp(base, expo >> 1)
    result *= result
    if expo & 0x1 == 1:
        result *= base
    return result

if __name__ == '__main__':
    assert exp(3, -1) == 0.3333333333333333
    assert exp(3, 10) == 59049
    assert exp(2, -3) == 0.125
    assert exp(2, 0) == 1
    assert exp(0, 0) == 1
    assert exp(0, 1) == 0
    assert exp(3, 0) == 1

相关文章

  • 《剑指 Offer (第 2 版)》第 16 题:数值的整数次方

    第 16 题:数值的整数次方(快速幂) 传送门:AcWing:数值的整数次方,牛客网 online judge 地...

  • 16:数值的整数次方

    题目16:数值的整数次方 给定一个double类型的浮点数base和int类型的整数exponent。求base的...

  • 16数值的整数次方

    实现函数exp(base, expo),求base的expo次方。不得使用库函数,同时不需要考虑大数问题。

  • 数值的整数次方

    《剑指offer》面试题16:数值的整数次方 题目:实现函数double Power(double base,in...

  • 16_数值的整数次方

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

  • 16.数值的整数次方

    思路:注意考虑好各个限制条件:求 a=0时,m不能小于0 a>0时,m>0,常规;m<0,倒数 a<0时,同2 0...

  • 注意考虑边界的类型题目

    注意考虑边界的类型题目 1· 数值的整数次方 (16 剑指offer ) 需要考虑 power 的 正负 需要考...

  • 3.3 数字相关(大数)

    面试题16.数值的整数次方给定一个double类型的浮点数base和int类型的整数exponent。求base的...

  • 剑指offer(十二)数值的整数次方

    数值的整数次方 是为了考察代码完整性点击进入 牛客网题库:数值的整数次方 题目描述:给定一个double类型的浮点...

  • 数值的整数次方

    题目描述: 解析一: 初看,就是求一个 double类型的数值的n次方,用代码来写就是n次数值相乘。但是,这道题的...

网友评论

    本文标题:16数值的整数次方

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