Home >Backend Development >PHP Tutorial >用PHP迭代器回实现一个斐波纳契数列

用PHP迭代器回实现一个斐波纳契数列

WBOY
WBOYOriginal
2016-06-13 11:57:251046browse

用PHP迭代器来实现一个斐波纳契数列

斐波纳契数列通常做法是用递归实现,当然还有其它的方法。这里现学现卖,用PHP的迭代器来实现一个斐波纳契数列,几乎没有什么难度,只是把类里的next()方法重写了一次。注释已经写到代码中,也是相当好理解的。

<?php /*[email&#160;protected] [email&#160;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



Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn