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

来源:互联网 发布:淘宝企业店铺注销 编辑:程序博客网 时间:2024/05/16 18:06

pow(base, exponent)

考虑一下几种情况:

base = 0, 那么直接返回0

base = 1, 那么直接返回1

exponent = 0, 那么直接返回1, 注意base= 0

exponent = 1, 那么直接返回 base

exponent  为正为负 的情况

主要考察的点是将问题缩减,用折半的思想。这个题细节还是很多的,为了便于验证,leetcode上恰好有这个题,建议在线AC一下。

 def equal(self, a, b):        return abs(a - b) < 1e-7            def pow(self, x, n):        if 0 == n and self.equal(x, 0):            return 0        if 0 == n: return 1        if 1 == n or self.equal(x, 1.0):            return x        pos = True        if n < 0:            pos = False            n = abs(n)        re = pow(x, n >> 1) * pow( x, n >> 1)        if n & 1:            re *= x        if pos == False:            re = 1.0/re        return re




0 0
原创粉丝点击