今天看到一个关于求x的n次方幂的运算的递归算法和迭代算法,特意记录下来:
递归算法:
int fun(int x, int n)
{
int val;
val = 1;
if(n>0)
{
if(n%2 == 1)
val = val * x;
val = val * fun(x*x, n/2);
}
return val;
}
迭代算法:
int fun(int x, int n)
{
int val;
int product;
product = 1;
val = x;
while(n>0)
{
if(n%2 == 1)
product = product * val;
val = val * val;
n = n/2;
}
return product;
}