PHP迭代器實現(xiàn)斐波納契數(shù)列的函數(shù)
更新時間:2013年11月12日 10:00:41 作者:
斐波納契數(shù)列通常做法是用遞歸實現(xiàn),當然還有其它的方法。這里現(xiàn)學現(xiàn)賣,用PHP的迭代器來實現(xiàn)一個斐波納契數(shù)列,幾乎沒有什么難度,只是把類里的next()方法重寫了一次。注釋已經(jīng)寫到代碼中,也是相當好理解的
復制代碼 代碼如下:
class Fibonacci implements Iterator {
private $previous = 1;
private $current = 0;
private $key = 0;
public function current() {
return $this->current;
}
public function key() {
return $this->key;
}
public function next() {
// 關鍵在這里
// 將當前值保存到 $newprevious
$newprevious = $this->current;
// 將上一個值與當前值的和賦給當前值
$this->current += $this->previous;
// 前一個當前值賦給上一個值
$this->previous = $newprevious;
$this->key++;
}
public function rewind() {
$this->previous = 1;
$this->current = 0;
$this->key = 0;
}
public function valid() {
return true;
}
}
$seq = new Fibonacci;
$i = 0;
foreach ($seq as $f) {
echo "$f ";
if ($i++ === 15) break;
}
程序運行結(jié)果:
復制代碼 代碼如下:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610
相關文章
PHP中的使用curl發(fā)送請求(GET請求和POST請求)
本篇文章主要介紹了PHP中的使用curl發(fā)送請求(GET請求和POST請求),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02微信開發(fā)之網(wǎng)頁授權(quán)獲取用戶信息(二)
本文給大家闡述的微信開發(fā)基于yii2.0框架,對微信開發(fā)之網(wǎng)頁授權(quán)獲取用戶信息相關知識感興趣的朋友通過本文學習吧2016-01-01yii2高級應用之自定義組件實現(xiàn)全局使用圖片上傳功能的方法
這篇文章主要介紹了yii2高級應用之自定義組件實現(xiàn)全局使用圖片上傳功能的方法,結(jié)合實例形式分析了Yii2自定義組件實現(xiàn)圖片上傳的相關步驟與操作技巧,需要的朋友可以參考下2016-10-10解決Linux下php-fpm進程過多導致內(nèi)存耗盡問題
這篇文章主要介紹了解決Linux下php-fpm進程過多導致內(nèi)存耗盡問題,需要的朋友可以參考下2017-12-12