牛客网 剑指Offer JZ12 数值的整数次方 经典快速幂

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

保证base和exponent不同时为0。不得使用库函数,同时不需要考虑大数问题,也不用考虑小数点后面0的位数。

 

示例1

输入:
2.00000,3
返回值:
8.00000

# -*- coding:utf-8 -*-
class Solution:
    def quick(self,b,n):
        if n == 0:
            return 1.0
        ret = self.quick(b, int(n/2));
        if n%2==1 :
            return ret * ret * b
        return ret * ret
        
    def Power(self, b, n):
        if n < 0 : 
            b = 1 / b
            n = -n 
        return self.quick(b,n)
        # write code here

 

posted @ 2021-07-31 20:45  zhang_upstar  阅读(35)  评论(0编辑  收藏  举报