0
def exp3(a,b):
if b == 1:
return a
if (b%2)*2 == b:
return exp3(a*a, b/2)
else: return a*exp3(a,b-1)
这是一个递归指数运算程序。递归指数运算器的输出和复杂度
问题1:
如果b为偶数,它将exceute(B%2)2 ==湾如果b为奇数,它会exceute一个 EXP3(A,B-1)。我的程序没有问题。如果b为4,(4%2)* 2 = 0,和0是不等于b。所以我无法理解如何计算偶数时的b值。
问题2:
我想calucate在程序步数。所以根据我的教科书,我可以得到如下的形式。 B还送吨(B)= 6 + T(B/2) b奇数T(B)= 6 + T(B-1) 为什么是第一数目6?我怎样才能在开始时得到数字3?