php处理斐波那契数列非递归方法
2015-01-24信息快讯网
phpchina上有个名人叫大白菜心,经常会拿这个事来说事。传统处理会把斐波那契数列用递归来处理,效率慢是必然的。不过他说事说吧,居然不拿出答案来,就有点不厚道了
我自己构思了下,实际上程序来解决这个事情,就是一个偏移量的问题。首先看数列::1、1、2、3、5、8、13、21、34数列的下一个数是前2个数字之和,以此类推。程序处理的话,实际上就是一个FOR语句,传统FOR语句是for($i=1;$i;$count,$i++),这里的偏移量是$i=$i+1.如果处理这个数列的话,这个偏移量就不是1了,是前1个数字。那么当你for的时候,一个变量记录上一个数字,另外一个记录当前数字,偏移量为这上一个数字,然后在循环中重新赋值,将上一个数字记录成当然循环值,以此做下个循环的偏移量。代码其实很简单:
$count = 9999999999967543; $array = array('0′=>1); for($a=1,$i=2;$i<$count;$i=$i+$a){ $array[] = $a; $array[] = $i; $a = $a +$i; } print_r($array); echo $count.'里有'.count($array).'个斐波那契数列数';
建议哪个无聊人拿这个去phpchina给大白菜职业顶贴去
php实现斐波那契数列的简单写法
处理单名多值表单的详解
PHP5常用函数列表(分享)
深入php函数file_get_contents超时处理的方法详解
如何批量替换相对地址为绝对地址(利用bat批处理实现)
PHP处理excel cvs表格的方法实例介绍
PHP 处理TXT文件(打开/关闭/检查/读取)
组合算法的PHP解答方法
PHP逐行输出(ob_flush与flush的组合)
Php图像处理类代码分享
php 带逗号千位符数字的处理方法
PHP的array_diff()函数在处理大数组时的效率问题
php中一个完整表单处理实现代码
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
php公用函数列表[正则]