当前位置:首页 > PHP教程 > 正文内容

如何用PHP迭代器来完成一个斐波纳契数列【php教程】,PHP,斐波纳契数列

搜教程4年前 (2019-12-04)PHP教程169
斐波纳契数列一般做法是用递归完成,固然另有别的的要领。这里现学现卖,用PHP的迭代器来完成一个斐波纳契数列,险些没有什么难度,只是把类里的next()要领重写了一次。

解释已写到代码中,也是相当好明白的。

/**
* @author 简明当代魔法 http://www.nowamagic.net
*/
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教程》

以上就是如何用PHP迭代器来完成一个斐波纳契数列的细致内容,更多请关注ki4网别的相干文章!

扫描二维码推送至手机访问。

版权声明:本文由搜教程网发布,如需转载请注明出处。

本文链接:https://www.sojiaocheng.cn/16439.html

分享给朋友:

“如何用PHP迭代器来完成一个斐波纳契数列【php教程】,PHP,斐波纳契数列” 的相关文章

PHP怎样运用双非(!!)运算符?(代码示例)【php教程】,PHP,!!,运算符

PHP怎样运用双非(!!)运算符?(代码示例)【php教程】,PHP,!!,运算符

在PHP中我们常常会运用的“!”运算符,单个“!”示意取反的意义,那末双个“!”,即双不(!!)运算符有什么作用?下面本篇文章就来带人人相识一下双不(!!)运算符,引见在PHP中怎样运用双不(!!)运算符,愿望对人人有所协助。【视频教程引荐:PHP教程】 PHP (!!)运算符 在PHP...

PHP如何将数组键转换为小写?【php教程】,PHP数组键,小写

PHP如何将数组键转换为小写?【php教程】,PHP数组键,小写

在PHP中将数组键转换为小写,我们能够在不运用轮回的状况下来简朴完成。我们只须要运用array_change_key_case()。array_change_key_case函数有两个参数,一个为数组,另一个能够为常量“CASE_LOWER”,那末我们在做大项目标时刻可能会须要如许做。 下...

PHP中isset()和empty()函数有什么区别?【php教程】,php

本篇文章给人人带来的内容是关于PHP中isset()和empty()函数有什么区别?有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 很多人只想着深邃的手艺,却连基础学问贮备都不过关!一个简朴的题目都能被问的发怵,几乎好笑!对!说的就是我本身!接下来会一向对峙做一些简朴的学问总结。...

PHP如安在关联数组的开首增加新元素?【php教程】,PHP关联数组,开头添加新元素

PHP如安在关联数组的开首增加新元素?【php教程】,PHP关联数组,开头添加新元素

在PHP中,关联数组是一种数组范例,个中索引不须要像索引数组那样严厉递次。通常在现有关联数组中增加一个新元素,它将附加在该数组的末端。 例: <?php $arr = array('one' => 1, 'two' => 2); $arr['zero'] =...

PHP 数组按多个字段排序完成代码【php教程】,php,数组排序

本文重要报告了用PHP言语完成数组按多个字段排序问题,附上代码,有须要的朋侪能够看一下。 问题: 一个二维数组,须要根据库存量排序,然后再根据门店间隔排序。 发现了如许一个如许子的要领: $array1 = array( 0=>array('id'=>8,'n...

【PHP口试】口试必问的两个简朴排序算法解说:冒泡排序和疾速排序【php教程】,PHP面试,冒泡排序,快速排序

【PHP口试】口试必问的两个简朴排序算法解说:冒泡排序和疾速排序【php教程】,PHP面试,冒泡排序,快速排序

平常应对口试,我们无可厚非的去刷下口试题。关于PHP开发者来讲,除了要熟习本身所做的项目,另有懂的基本的算法。下面来分享下PHP口试中常会问到的算法:冒泡排序和疾速排序。 冒泡排序:逐一对照排序 基本思想: 反复地访问过要排序的元素列,顺次比较两个相邻的元素,假如他们的递次(如从大到...