码迷,mamicode.com
首页 > 其他好文 > 详细

剑指offer:数值的整数次方

时间:2019-04-19 20:02:10      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:off   turn   否则   除了   exp   self   return   输入   正数   

题目描述
给定一个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:数值的整数次方

标签:off   turn   否则   除了   exp   self   return   输入   正数   

原文地址:https://blog.51cto.com/jayce1111/2381569

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!