Flex递归斐波那契数列.

来源:百度知道 编辑:UC知道 时间:2024/06/01 12:36:58
public function init():void{
var arr:Array=new Array();
var n:int=10;
for(var i:int=1;i<n;i++)
{
var res:int=add(i);
arr.push(res);
}
trace(arr);
}
public function add(i:int):int
{
if(i>2)
{
return add(i-1)+add(i-2);
}else
return 1;
结果 1,1,2,3,5,8,13,21,34
例如i=5, 进行递归后的结果为5.是怎么算的。
因为本人是初学者.人也比较笨.麻烦逐步说明.
你好!我用追踪看。add(5)=add(4)+add(3)=add(3)+add(2)=add(2)+add(1)这里已经不满足i>2为什么还执行。怎样才会结束啊?

当i等于5时,调用add(5),满足条件i>2,所以,return add(i-1)+add(i-2);
即调用add(4)和add(3)并相加;add(4)同样满足条件i>2,所以,return add(i-1)+add(i-2),即add(3)和add(2);同理,最后得出add(5)=add(4)+add(3)=add(3)+add(2)+add(3)=add(2)+add(1)+add(2)+add(2)+add(1)=5.