用PHP迭代器來實現一個費伯納西數列

來源:互聯網
上載者:User

標籤:費伯納西數列   php迭代器   

費伯納西數列通常做法是用遞迴實現,當然還有其它的方法。這裡現學現賣,用PHP的迭代器來實現一個費伯納西數列,幾乎沒有什麼難度,只是把類裡的next()方法重寫了一次。注釋已經寫到代碼中,也是相當好理解的。

<?php/**@author [email protected]*/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; } ?>



程式運行結果:

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.