迭代、递归解决斐波纳挈数列问题
来源:互联网 发布:打拐dna数据库 编辑:程序博客网 时间:2024/06/10 22:47
<?php/** * @param $n int 第N项 * * @return int 第N项的值 */function f($n) {//已知条件$before_1 = 1;//前一项(初始化时就是第二项)$before_2 = 1;//前二项(初始化时就是第一项)//判断是否是第一项或第二项if($n == 1) {return $before_2;} elseif ($n == 2) {return $before_1;}//计算第$n项,从第三项开始,到第$n项,逐一计算for($i=3; $i<=$n; ++$i) {$now = $before_1 + $before_2;//得到当前项$now//切换前一项,和前二项,整体向后移动$before_2 = $before_1;$before_1 = $now;}return $now;}echo f($_GET['n']);//echo f(2);//echo '<br>';//echo f(5);//echo '<br>';//echo f(10);
<?php//递归的方案解决斐波纳挈数列/** * @param $n int 第N项 * * @return int 第N项的值 */function f($n) {//递归出口,前两项已知if($n == 1) {return 1;} elseif ($n == 2) {return 1;}//利用公式完成//递归点,每项前两项之和return f($n-1) + f($n-2);}echo f($_GET['n']);//echo f(5);//5//f(5) = return f(4) + f(3);// = return (return f(3) + f(2)) + f(3);// = return (return (return f(2) + f(1)) + f(2)) + f(3);// = return (return (return 1 + f(1)) + f(2)) + f(3);// = return (return (return 1 + 1) + f(2)) + f(3);// = return (return 2 + 1) + f(3);// = return 3 + (return f(2) + f(1));// = return 3 + (return 1 + f(1));// = return 3 + (return 1 + 1);// = return 3 + 2;// = return 5;////echo '<br>';//echo f(10);//55
0 0
- 迭代、递归解决斐波纳挈数列问题
- 非递归解决斐波纳挈数列问题
- 菲波拉契数列(递归与迭代)
- 计算fibonacci数列 - 递归和迭代的效率对比
- 斐波那契数列【迭代+递归】
- python实现费波纳茨数列——递归、迭代
- 斐波那契数列迭代和递归实现
- 斐波那契数列(迭代和递归)
- 递归解决非布拉茨数列
- 迭代解决装载问题
- 回溯法解决0_1背包问题(迭代和递归)
- n后问题迭代, 递归解法...
- 递归和迭代算法 [汉诺塔问题]
- 递归解决-兔子问题-斐波那契数列
- 递归方法解决最大连续子数列问题
- C++递归解决斐波那契数列问题
- 斐波那契数列的递归和迭代实现之差异
- 用递归和迭代分别处理斐波那契数列
- Enable Notepad++ 666 support both SCLEX_FORTRAN and SCLEX_F77
- 简单的Ajax应用实例
- 英联(UNION-IC)样片申请与经验
- mysql查看各个表的大小
- SurfaceHolder-----api的使用
- 迭代、递归解决斐波纳挈数列问题
- SDUT OJ -2892 A
- 子对话框与主对话框共用MSComm方法
- 程序员长期保持身心健康的几点建议
- SDUT OJ-2896
- 记忆与遗忘--《潜意识-控制你行为的秘密》
- U-BLOX样片申请与经验
- 深入理解C/C++ [Deep C (and C++)] (2)
- 使用AnimationUtils载入动画