/***********************
在实际开发中很多时候会作到算法,
递归就是最常见的一种。
递归可以让一个函数从其内部调用其自身,
递归和循环紧密相关,
基本上能用循环就能用递归。
一个典型示例就是计算阶乘,
下面是其ActipnScript的代码。
***********************/
//阶乘
function factorial(n:int):int
{
if (n > 1)
{
return n*factorial(n-1);
}
else
{
return 1;
}
}
trace("6!="+factorial(6));
/**********************
此处定义了factorial函数,
并在其内部调用自己,
最后当n=1时就返回1,
不再调用从而实现阶乘运算。
著名的高斯算法一般是用循环不实现的,
其实也可以用递归来实现。看下面代码。
***********************/
//高斯算法
function sum(min:int,max:int):int
{
if (max > min)
{
return max + sum(min,--max);
}
else
{
return max;
}
}
trace("1+2+...+10="+sum(1,10));
/***********************
和循环一样,
递归一定要有一个终结点,
不然将导致计算机执行一个“无限”死循环
***********************/