php フィボナッチ数列のイテレーター
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php フィボナッチ数列のイテレーター相关的知识,希望对你有一定的参考价值。
<?php
// フィボナッチ数列のイテレーター
class FibonacciIterator implements Iterator
{
protected $a;
protected $b;
protected $key;
protected $limit;
public function __construct($limit = 10)
{
$this->limit = $limit;
$this->rewind();
}
public function current()
{
if ($this->key === 0)
{
return 0;
}
if ($this->key === 1)
{
return 1;
}
$this->b = $this->a + $this->b;
$this->a = $this->b - $this->a;
return $this->b;
}
public function key()
{
return $this->key;
}
public function next()
{
$this->key = $this->key + 1;
}
public function rewind()
{
$this->a = 0;
$this->b = 1;
$this->key = 0;
}
public function valid()
{
return $this->key < $this->limit;
}
}
$iterator = new FibonacciIterator(20);
foreach($iterator as $val)
{
var_dump($val);
}
foreach($iterator as $val)
{
var_dump($val);
}
//=> int(0)
//=> int(1)
//=> int(1)
//=> int(2)
//=> int(3)
//=> int(5)
//=> int(8)
//=> int(13)
//=> int(21)
//=> int(34)
//=> int(55)
//=> int(89)
//=> int(144)
//=> int(233)
//=> int(377)
//=> int(610)
//=> int(987)
//=> int(1597)
//=> int(2584)
//=> int(4181)
//=> int(0)
//=> int(1)
//=> int(1)
//=> int(2)
//=> int(3)
//=> int(5)
//=> int(8)
//=> int(13)
//=> int(21)
//=> int(34)
//=> int(55)
//=> int(89)
//=> int(144)
//=> int(233)
//=> int(377)
//=> int(610)
//=> int(987)
//=> int(1597)
//=> int(2584)
//=> int(4181)
以上是关于php フィボナッチ数列のイテレーター的主要内容,如果未能解决你的问题,请参考以下文章
markdown メモ化を使ったフィボナッチ数列を求める关数
Typical DP Contest 社论
c_cpp フィボナッチ数列をどこまで小さく记述できるかin C ref:http://qiita.com/maekawatoshiki/items/b1cba7600d3dbd634a79
markdown イテレータ
ruby 二つの枚举を外部イテレーターの机能で突き合わせを行いマージする
javascript Vue公司で使うフィルータ