python幂次方计算公式_【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))

3ad49a7fc47f

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值