c语言 用迭代 求x的n次方

来源:百度知道 编辑:UC知道 时间:2024/05/31 00:44:02
要迭代iterasive的算法
我会去测时间的
请不要再给我提供递归和最普通的算法了 我只要迭代的

b^n = (b ^ (n / 2) ^ 2) (n为偶数)
b^n = b * b ^ (n - 1) (n为奇数)

给你函数,传入m,n,返回m的n次方
int fun(m, n)
{
if(n == 0)
return 1;
if(n%2==0)
return pow(fun(m, n/2), 2);
else
return m*fun(n-1);
}

(-_-!这种东西竟然不让用递归?!典型的递归啊

double nExponent(double x, int n){
int iter = 1;
while(n != 0){
iter = iter*x;
n --;
}
return iter;
}