#算法概论#1——从Fibonacci数列开始

来源:互联网 发布:商家联盟网站源码 编辑:程序博客网 时间:2024/05/22 11:37

Fibonacci(斐波纳契) 数列:从第3位开始,每个数都是其2个直接前项的和。

0,1,1,2,3,5,8,13,21.。。。。。。。。。。

public function fib1(n:Number):Number{if (n == 0) return 0;if (n == 1) return 0;if (n == 2) return 1;return fib1(n - 1) + fib1(n - 2);}
public function fib2(n:int):Number{if (n == 0) return 0;if (n == 1) return 0;if (n == 2) return 1;var arr:Array = new Array();arr[0] = 0;arr[1] = 1;for (var i:int = 2; i <= n; i++) {arr[i] = arr[i - 1] + arr[i - 2];}return arr[n];}
函数中的返回值如果是int那么50项左右就溢出了。

第一个算法运用了递归。这个算法随着n的增加而成指数性质的增加。不实用。

第二个用了数组。还可以算个200项也很快。


var fibSeries:FibonacciSeries=new FibonacciSeries();//trace(fibSeries.fib1(200));trace(fibSeries.fib2(100));



原创粉丝点击