题解 | #数值的整数次方#

数值的整数次方

http://www.nowcoder.com/practice/1a834e5e3e1a4b7ba251417554e07c00

【剑指offer】数值的整数次方(python)

分治思想
将原问题拆分成多个规模较小的子问题,最后将子问题的解合并起来。
本题子问题是 x^{n/2},如果 n 不为偶数,拆成两半还剩下一个 x,将子问题合并时还需多乘一个 x。

# -*- coding:utf-8 -*-
class Solution:
    def Power(self, base, exponent):
        # write code here
        isNegative = False
        if exponent < 0:
            exponent = -exponent
            isNegative = True
        res = self.pow(base, exponent)
        return 1/res if isNegative else res
    def pow(self,x,n):
        if n == 0: return 1
        if n == 1: return x
        res = self.pow(x, n/2)
        res *= res
        if n%2 != 0: res *= x
        return res
全部评论

相关推荐

qz鹿:*** 祝他毕业就失业
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务