剑指offer:数值的整数次方

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer:数值的整数次方相关的知识,希望对你有一定的参考价值。

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

class Solution:
    def Power(self, base, exponent):
        # 任何数的0次方都是1
        if exponent == 0:
            return 1
        # 0的任何次方(除了0的0次方)都为0
        if base == 0:
            return 0

        # 先记录指数符号
        sign = exponent > 0
        exponent = abs(exponent)

        res = 1
        cur = base

        while exponent != 0:
            # 如果输入的指数为奇数,则先将res变成base
            # 每当exponent变为奇数的时候,先保存当时的cur
            if exponent & 1 == 1:
                res *= cur

            # 每次将cur平方,exponent除二
            cur *= cur
            exponent >>= 1

        # 如果指数是正数,则直接返回指数结果,否则返回倒数
        if sign:
            return res

        return 1 / res

以上是关于剑指offer:数值的整数次方的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer数值的整数次方

数值的整数次方-剑指Offer

剑指offer16数值的整数次方

[剑指offer]数值的整数次方

剑指offer:数值的整数次方

剑指offer-数值的整数次方-调整数组顺序使奇数位于偶数前面-代码的完整性-python