递归函数

/***********************

在实际开发中很多时候会作到算法,

递归就是最常见的一种。

递归可以让一个函数从其内部调用其自身,

递归和循环紧密相关,

基本上能用循环就能用递归。

一个典型示例就是计算阶乘,

下面是其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));

/***********************

和循环一样,

递归一定要有一个终结点,

不然将导致计算机执行一个“无限”死循环

***********************/

你可能感兴趣的:(递归)