【python】计算一个数得n次方?

题目:给定一个数d和n,如何计算d的n次方?例如:d = 2, n = 3, d的n次方为2**3 = 8

分析:递归得方法:

(1)n = 0,那么计算结果肯定为1

(2)n = 1, 那么计算结果肯定为h

(3)n > 0,首先计算2**(n/2)的值tmp,如果n为奇数,那么计算结果result = tmp * tmp * d,如果n为偶数,那么结果为result = tmp * tmp

(4)n < 0,首先计算2**(|n/2|)的值tmp,如果n为奇数,那么计算结果result = 1/ (tmp * tmp * d),如果n为偶数,那么结果为result = 1/(tmp * tmp)。

code:

def power(d, n):

    if n == 0: return 1

    if n == 1: return d

    tmp = power(d, abs(n)/2) + 0.0

    if n > 0:

        if n % 2 == 1:

            return tmp * tmp * d

        else:

            return tmp * tmp

    else:

        if n % 2 == 1:

            return 1 / (tmp * tmp * d)

        else:

            return 1 / (tmp * tmp)

if __name__ == "__main__":

    x = 3

    y = 6

    print(power(x, y))

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容