我自己構思了下,實際上程序來解決這個事情,就是一個偏移量的問題。首先看數列::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給大白菜職業頂貼去