如何用PHP迭代器编写生成斐波那契数列的程序?

更新于
2026-09-27 14:06:45
1阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计290个文字,预计阅读时间需要2分钟。

如何用PHP迭代器编写生成斐波那契数列的程序?

斐波那契数列通常用递归方法实现,其实还有其他方法。这里用PHP的生成器来实拟一个斐波那契数列,几乎没有难度,只需重写类中的next()方法即可。

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

<?php /* *@author [emailprotected] */ 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

如何用PHP迭代器编写生成斐波那契数列的程序?

本文共计290个文字,预计阅读时间需要2分钟。

如何用PHP迭代器编写生成斐波那契数列的程序?

斐波那契数列通常用递归方法实现,其实还有其他方法。这里用PHP的生成器来实拟一个斐波那契数列,几乎没有难度,只需重写类中的next()方法即可。

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

<?php /* *@author [emailprotected] */ 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

如何用PHP迭代器编写生成斐波那契数列的程序?