/*********************** 在实际开发中很多时候会作到算法, 递归就是最常见的一种。 递归可以让一个函数从其内部调用其自身, 递归和循环紧密相关, 基本上能用循环就能用递归。 一个典型示例就是计算阶乘, 下面是其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)); /*********************** 和循环一样, 递归一定要有一个终结点, 不然将导致计算机执行一个“无限”死循环 ***********************/