php非递归方法处理斐波那契数列
用程序来解决斐波那契数列的问题,其实就是一个偏移量的问题。
首先,数列::1、1、2、3、5、8、13、21、34数列的下一个数是前2个数字之和,以此类推。
使用php程序处理的话,实际就是一个FOR语句,传统FOR语句是for($i=1;$i;$count,$i++),这里的偏移量是$i=$i+1.如果处理这个数列的话,这个偏移量就不是1了,是前1个数字。
那么,当使用php for循环时一个变量记录上一个数字,另外一个记录当前数字,偏移量为这上一个数字,然后在循环中重新赋值,将上一个数字记录成当然循环值,以此做下个循环的偏移量。
例子,php非递归方法处理斐波那契数列。
<?php $count = 9999999999967543; $array = array('0′=>1); for($a=1,$i=2;$i<$count;$i=$i+$a){ $array[] = $a; $array[] = $i; $a = $a +$i; } //by www.jb200.com print_r($array); echo $count.'里有'.count($array).'个斐波那契数列数';