所以这是算法:
Algorithm pow (a, n):
Input: two integers, a (base) and n (exponent)
Output: returns the equivalent of a^n
K ← n
b ← 1
c ← a
while k > 0 do
if k mod 2 = 0 then
k ← k / 2
c ← c * c
else
k ← k − 1
b ← b * c
return b
确切的增长函数我不确定,但它看起来像log(n)+ C;其中C =执行'else'分支的次数。这里的任何帮助都会很棒!我已经绞尽脑汁待了太长时间才有用......
答案 0 :(得分:1)
这看起来像是家庭作业,所以我会简短地回答。
我认为你应该尝试显示其他分支的输入小于或等于另一个分支(每次你有一个奇数k并从中减去一个,你得到一个偶数)。然后显示第一个分支是log(n),因此第二个分支必须小于或等于log(n),而2 * log(n)也是log(n)......