问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php用函数实现输出斐波那契数列的前20项

发布网友 发布时间:2022-04-29 10:18

我来回答

2个回答

懂视网 时间:2022-04-29 14:40

斐波纳契数列通常做法是用递归实现,当然还有其它的方法。这里现学现卖,用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教程》

热心网友 时间:2022-04-29 11:48

function fbnq($n){
    if($n <= 0) return 0;
    if($n == 1 || $n == 2) return 1;
    return fbnq($n - 1) + fbnq($n - 2);
}
for ($i = 1;$i<=20;$i++) {
echo fbnq($i).'<br />';
}

用php做for循环输出斐波那契1-100的数列

php//初始化前两项$prevNum1 = 0;$prevNum2 = 1;//输出初始值echo $prevNum1,"\n";echo $prevNum2,"\n";for(;true;) { echo $prevNum1 + $prevNum2,"\n"; /** * 根据 斐波那契数列的规则 * 从第三项开始,每一项都是前两项之和 * 所以这里重新计算一下项...

菲波拉契数列的第一项为0,第二项为1,以后的每一项是它前两项的和...

&lt;?php //显示斐波那契数列的前三十项; 第一项:0;第二项1;每一项都是前两项的的和 echo "0"."";echo "1"."";b=1;temp = 0;for($i=1;$i&lt;=28;$i++){ c = $temp+$b;echo $c."";temp = $c-$temp;b=$c;} ?&gt; php 供参考 ...

编写一个java类,控制台输出1,1,2,3,5,8,13

importjava.util.ArrayList;importjava.util.List;/ 输出斐波那契数列。author老紫竹 / publicclassTT{ privateList&lt;Integer&gt;list=newArrayList&lt;Integer&gt;();publicTT(intnumber){ list.add(1);list.add(1);for(inti=2;i&lt;=number;i++){ list.add(list.get(i-1)+list.get(i-2));} } publicSt...

计算机里面什么是递归?

一个常见的例子是斐波那契数列: F(n) = F(n − 1) + F(n − 2)。为了使这样的定义有用,它必须引入非递归定义的值,在这种情况下,F(0) = 0,F(1) = 1。 一个著名的递归函数是阿克曼函数,它不同于斐波那契数列,如果没有递归,它将无法被表达的。涉及递归定义的证明 如前几节所述,将标准的案例...

哪位大虾能告诉我怎么证明斐波那契数列的后项与前项之比趋近黄金分割...

这个……是一个很高深的问题。斐波那契数列有通项公式,里面含有 根号5-1等与黄金分割密切相关的东西,后项与前项之比趋近黄金分割,用数学方法计算一下可以证明,也许与这个有关吧。看看http://www.gzsx.net/Article/ShowArticle.asp?ArticleID=48 上面有详细证明。另外,与这个性质有关的应用也很...

菲薄纳西数列是怎么回事

=1,以及对于3-t&lt;=n&lt;=0,有a(n)=0.在链接http://bbs.emath.ac.cn/viewthread.php?tid=667&amp;page=3&amp;fromuid=20#pid8349中mathe给出了t阶斐波那契数列的通项公式:[r^(n-1)(r-1)/((t+1)r-2t)], 其中r是方程x^{t+1}-2x^t+1=0的唯一一个大于1的正数根(可以看出r非常接近2)...

谁知道阿米莉亚序列和斐波那契数列是什么?

斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n&gt;=2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1960年代起...

django中如何实现轮播图(java轮播图怎么实现)

gofmt工具、godoc文档生成工具详解、斐波那契数列、数据和切片、makenew、字符串、go程序调试、slicemap、map排序、常用标准库使用、文件增删改查操作、函数和面向对象详解、并发、并行与goroute、channel详解goroute同步、channel、超时与定时器reover捕获异常、Go高并发模型、Lazy生成器、并发数控制、高并发web服务器的...

django多少天学会(学django之前要学什么?)

第六天:面向对象编程(OOP)(6小时):对象,类,方法和构造函数,面向对象编程之继承 第七天:算法(6小时):搜索(线性和二分查找)、排序(冒泡排序、选择排序)、递归函数(阶乘、斐波那契数列)、时间复杂度(线性、二次和常量) 通过第一周时间,python大致能熟悉了,自学能力稍微弱一点找人带下你,节约自己的时间。 注意:别...

什么是质数

python斐波那契数列前20项 用python函数写斐波那契数列 python输出斐波那契数列 用递归函数求斐波那契数列 java实现斐波那契数列 斐波那契数列的应用 斐波那契数列函数图像 求斐波那契数列php 斐波那契数列php代码
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
自轻自贝是什么意思 舌头开裂是什么病 去除暖水瓶中的水垢的小窍门 暖瓶有水垢用什么办法除掉(暖瓶水垢太厚清除妙招) 怎样恢复误删的相片? 冬天水泥多久不怕冻 学生假期生活小结:如何充实有意义地度过假期 假期应该和孩子如何度过每一天? 福建管道清洗厂家 对女生说了我养你啊,女生说你怕是不知道养一个人的概念,怎么把这个问 ... word添加空白页为什么分页符在最上面- 问一问 WORD 2007中分节符和分页符分别是干嘛的? word2010插入空白页后有分页符 哪种情况不能用下一页分节符 为什么插入分页符后出现一张空白页,把空白页删掉,还有分页的效果吗? 自动生成目录用分页还是空白页 oppoa93通知栏怎么说进入查看消息内容?消息发出来,为什么说进入查看消息内容?_百度问一问 opporeno5怎么显示消息内容 oppo手机怎么调消息通知的内容 麻豆网络异常 如何提高FPS 如何查看魅族手机帧数? 打FPS游戏怎么提高反应速度 魅族5pro手机玩王者荣耀fps和ms不稳定,忽高忽低如何解决 fps怎么提高 怎么才能提高FPS? 如何让fps提高 魅族手机怎么让王者荣耀fps稳定 魅族手机屏幕上显示的fps怎么消除? fps怎么提高? 钉钉直播课,手机和平板同时打开看,后台检测是用什么软件上课的吗 高途课堂直播可以看学生后台吗? 知到直播课切后台算上课时长吗? 老师直播课学生可以自己查看自己的看课记录和看课时间吗,后台或者分屏会不会被记录? 钉钉直播开后台然后退出去算上课吗? 钉钉的班级直播授课后台被关了怎么办? 如果不上,直播课上重播课,老师能在后台看见我们吗? 没有手机号怎么查询汽车违章 你好、申请了光大银行信用卡初审通过、去银行面签注意事项 世界上人口密度最大的国家是哪个国家 vlookup 最后一个参数不写是精确匹配还是模糊查找? 亚洲人口密度最高的国家是印度还是日本 在“VLOOKUP”函数中为何“TRUE”是模糊查找,而“FALSE”反而是精确查找? 金砖国家中人口密度最大的国家是 网上申请光大银行信用卡,查询卡进度显示初审通过,等待面签,面签主要是干什么? 日本的印度,哪个的人口密度更大? Excel 的vlookup函数的模糊查找 查询驾驶证在网上查,不知道原手机号怎么办? 印度和中国,哪个国家的人口密度大? 关于excel中VLOOKUP函数模糊查找的问题