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() {
// 關(guān)鍵在這里
// 將當前值保存到 $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中的static和yield關(guān)鍵字
- PHP yield關(guān)鍵字功能與用法分析
- PHP5.5新特性之yield理解與用法實例分析
- PHP迭代器的內(nèi)部執(zhí)行過程詳解
- PHP迭代器和迭代的實現(xiàn)與使用方法分析
- PHP聚合式迭代器接口IteratorAggregate用法分析
- PHP基于SPL實現(xiàn)的迭代器模式示例
- C#特性 迭代器(下) yield以及流的延遲計算
- C#中使用迭代器處理等待任務(wù)
- C#使用yield關(guān)鍵字構(gòu)建迭代器詳解
- C#中的yield關(guān)鍵字的使用方法介紹
- php和C#的yield迭代器實現(xiàn)方法對比分析
相關(guān)文章
PHP isset empty函數(shù)相關(guān)面試題及解析
這篇文章主要介紹了PHP isset empty函數(shù)相關(guān)面試題及解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-12-12
利用Laravel生成Gravatar頭像地址的優(yōu)雅方法
Gravatar是一圖像跟隨著您到訪過的網(wǎng)站,當您在博客中留言或發(fā)表文章,它將會出現(xiàn)在您的名稱旁。下面這篇文章主要給大家介紹了關(guān)于利用Laravel如何生成 Gravatar 頭像地址的優(yōu)雅方法,需要的朋友可以參考下。2017-12-12
ThinkPHP實現(xiàn)二級循環(huán)讀取的方法
這篇文章主要介紹了ThinkPHP實現(xiàn)二級循環(huán)讀取的方法,是ThinkPHP基于數(shù)組的數(shù)據(jù)庫操作中非常常見的技巧,需要的朋友可以參考下2014-11-11
Thinkphp和Bootstrap結(jié)合打造個性的分頁樣式(推薦)
這篇文章主要介紹了Thinkphp和Bootstrap結(jié)合打造個性的分頁樣式(推薦)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-08-08
Yii實現(xiàn)多數(shù)據(jù)庫主從讀寫分離的方法
這篇文章主要介紹了Yii實現(xiàn)多數(shù)據(jù)庫主從讀寫分離的方法,通過針對Yii數(shù)據(jù)庫類的擴展實現(xiàn)多數(shù)據(jù)庫主從讀寫的分離功能,是非常實用的技巧,需要的朋友可以參考下2014-12-12
PHP設(shè)計模式(七)組合模式Composite實例詳解【結(jié)構(gòu)型】
這篇文章主要介紹了PHP設(shè)計模式:組合模式Composite,結(jié)合實例形式詳細分析了PHP組合模式Composite基本概念、功能、原理、用法及操作注意事項,需要的朋友可以參考下2020-05-05

