【发布时间】:2015-11-08 22:49:42
【问题描述】:
我正在尝试编写一个递归计算指数的小程序,但我有点卡住了。这是一项家庭作业,我们被要求有一个基本情况,即当指数为奇数而指数为偶数时。到目前为止,我有这个:
def quick_power(x,n):
if n == 0:
return 1
elif n % 2 != 0:
return x * quick_power(x, n-1)
elif n % 2 == 0:
return quick_power(quick_power(x, n//2), 2)
而且我知道 n % 2 == 0 的行不是它应该的。任何帮助表示赞赏。谢谢。
【问题讨论】:
-
你为什么有那些偶数/奇数支票?
-
@Anand:问题是任务说应该有这些检查。也就是说,有一个很好的理由:这是exponentiation by squaring 的算法。
标签: python recursion exponentiation