如果我有两个整数m和n,我必须来计算power(m,n),即米ñ,然后我写了下面的递归代码,这给时间复杂度为O(log n)的,但我不能写它的迭代版本,它提供了类似的时间复杂.
int power(int m, int n) {
int p;
if (n == 1)
return m;
p = power(m, n / 2);
if (n % 2 == 1)
return p * p * m;
else
return p * p;
}
Run Code Online (Sandbox Code Playgroud)