在AS中运用递归
作者:Flying 日期:2007-09-15
一直以来数学学得不好,因此见了算法就头大,但有时又不得不面对。在实际开发中很多时候会作到算法,递归就是最常见的一种。下面我就来谈一谈自己的肤浅认识。
递归可以让一个函数从其内部调用其自身,递归和循环紧密相关,基本上能用循环就能用递归。一个典型示例就是计算阶乘,下面是其ActipnScript的代码。
//阶乘
function factorial(n) {
if (n>1) {
return n*factorial(n-1);
} else {
return 1;
}
}
trace("6!="+factorial(6));
此处我们定义了factorial函数,并在其内部调用自己,最后当n=1时就返回1,不再调用从而实现阶乘运算。著名的高斯算法一般是用循环不实现的,其实也可以用递归来实现。看下面代码。
//高斯算法
function sum(min,max) {
if (max>min) {
return max + sum(min,--max);
} else {
return max;
}
}
trace("1+2+...+10="+sum(1,10));
和循环一样,递归一定要有一个终结点,不然将导致计算机执行一个“无限”死循环。
上一篇: 为SimpleButton添加Disabled状态
下一篇: 改进AIR网页浏览器:支持加载本地内容
文章来自: 本站原创
Tags: Actionscript3 Algorithm
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论

