计算a ^ n的值:
方法1:
result = 1;
for(int i = 1; i <=n; i++)
result *= a;
如果使用method2改进:
result = a;
for(int i = 1; i <=k; i++)
result = result * result;
如何推断出k和n之间的关系?为什么? 谢谢!
答案 0 :(得分:1)
我猜你正在尝试exponentiation by squaring。
显然,对于2的幂,k = log_2 n。
答案 1 :(得分:0)
在第一种情况下结果= a ^ n,在第二种情况下结果= a ^(2 ^ k),因此2 ^ k = n且k = logn。当然,这只适用于n为2的幂。
答案 2 :(得分:0)