#include <stdio.h>
long int pow(long int x,unsigned int n)
{
if (n==0)
{
printf("x:%ld-n==0\n",x);
return 1;
} else if (n==1)
{
printf("x:%ld-n==1\n",x);
return x;
} else
{
printf("x:%ld-n:%d\n",x,n);
if (n%2==0)
{
return pow(x*x,n/2);
}else
{
return pow(x*x,n/2)*x;
}
}
}
int main(int argc, char *argv[])
{
printf("pow(2,10):%ld\n",pow(2,10));
printf("pow(2,8):%ld\n",pow(2,8));
printf("%ld\n",2*2*2*2*2*2*2*2*2*2);
return 0;
}
运行结果