用php实现斐波那契数列
2015-08-07 16:48
627 查看
//1 1 2 3 5 8 13 ....
//观察数列 你会发现下一个数是如何得来的
// f(3) = f(2) + f(1) f(4)=f(3)+f(2) f(18)=f(17)+f(16)
// 2 = 1 + 1 3 = 2 + 1 f($n) = f($n-1) + f($n-2)
//问第18位是多少
======================
function f($n){
if($n<3)return 1;
return f($n-1) + f($n-2);
}
echo f(18);
=====================
三种方式、
第一种遍历的样式,数值大的话 会卡爆
第二种 第三种 速度比较快
第三种是一种公式的缩写
//观察数列 你会发现下一个数是如何得来的
// f(3) = f(2) + f(1) f(4)=f(3)+f(2) f(18)=f(17)+f(16)
// 2 = 1 + 1 3 = 2 + 1 f($n) = f($n-1) + f($n-2)
//问第18位是多少
======================
function f($n){
if($n<3)return 1;
return f($n-1) + f($n-2);
}
echo f(18);
=====================
function f2($n){ $num1 = $num2 = $temp = 1; for($i=2;$i<$n;$i++){ //1 1 2 3 5 8 13 .... $temp = $num1 + $num2; //$temp = 2 $num1 = $num2; //$num1 = 1 $num2 = $temp; //$num2 = 2 } return $temp; }
function f3($n){ return (pow((1+sqrt(5))/2,$n) - pow((1-sqrt(5))/2,$n))/sqrt(5); } $num = $_GET['num']; echo f3($num); echo '<br/>'; echo f2($num);
三种方式、
第一种遍历的样式,数值大的话 会卡爆
第二种 第三种 速度比较快
第三种是一种公式的缩写
相关文章推荐
- laravel5笔记
- php会话中阶
- 【程序都把爹给坑了系列】安装xampp以后,希望可以直接在命令行运行php命令结果坑爹了
- PHP curl 模拟登录并获取数据
- php设计模式之策略模式
- 用FTPClient对ftp文件进行上传下载等操作
- TTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
- mysql中文乱码问题,phpmyadmin操作解决方法
- Php扫描目录学习记录
- htpasswd
- 【这是转载的】菜菜鸟Zend Framework 2 不完全学习涂鸦(一)-- 安装配置
- CI框架中使用PHPExcel导出Excel文件
- PHP curl_setopt函数用法介绍
- ftp发送文件
- 一种逆天的PHP字符串构造方法.
- [转]php连接postgresql
- laravel5.1 数据无法正常写入mysql
- ftp主被动模式
- ftpcount
- php中file_get_contents()与curl()性能比较