递归只是被调用的函数的 名称 正好和 调用者相同,
因此,递归调用不是表面上的函数调用自身,
而是一个函数的实例调用同一个函数函数的另一个实例
double power(double x, unsigned int n){
if(n == 0)
return 1;
else
return x * power(x, n-1);
}
// 非递归版本
double power_(double x, unsigned int n){ double result = 1; for(result = x; n>1; --n) result *= x; return result; }