+ -
当前位置:首页 → 问答吧 → vc++递归,请高手帮小弟,新手

vc++递归,请高手帮小弟,新手

时间:2011-11-29

来源:互联网

#include<iostream>
using namespace std;
double power(double x,int n);

int main()
{
  double x(2.0);
  double result(0.0);


for(int index =-3;index < 3;index ++)
{
cout << x << "值是:" << index << " 是 " << power(x,index) << endl;

system("pause");
return 0;

}
}
 
double power(double x,int n)
{
if(n < 0)
{
x = 1.0/x;
n = -n;
}
if(n > 0)
{
return x * power(x,n-1);
}
else
return 1.0;
}
请高手给小弟解释这段程序递归是怎么执行的啊
另外: 
double x(2.0);
double result(0.0);这个是什么意思啊?

作者: lhyxiaolang   发布时间: 2011-11-29

double x(2.0);
double result(0.0) 
就是把把x初期化成2.0,result同理

因为x的n次方 = x * x的n-1次方, 所以可以采用递归

也就是pow(x,n)中,调用pow(x,n-1),直到n=1

作者: relaxisland   发布时间: 2011-11-29