用php实现斐波那契数列
//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);
=====================
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);
三种方式、
第一种遍历的样式,数值大的话 会卡爆
第二种 第三种 速度比较快
第三种是一种公式的缩写
用php实现斐波那契数列的更多相关文章
- C#求斐波那契数列第30项的值(递归和非递归)
		using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ... 
- 斐波拉契数列加强版——时间复杂度O(1),空间复杂度O(1)
		对于斐波拉契经典问题,我们都非常熟悉,通过递推公式F(n) = F(n - ) + F(n - ),我们可以在线性时间内求出第n项F(n),现在考虑斐波拉契的加强版,我们要求的项数n的范围为int范围 ... 
- js中的斐波那契数列法
		//斐波那契数列:1,2,3,5,8,13…… //从第3个起的第n个等于前两个之和 //解法1: var n1 = 1,n2 = 2; for(var i=3;i<101;i++){ var ... 
- 剑指Offer面试题:8.斐波那契数列
		一.题目:斐波那契数列 题目:写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项.斐波那契数列的定义如下: 二.效率很低的解法 很多C/C++/C#/Java语言教科书在讲述递归函数的时 ... 
- 算法: 斐波那契数列C/C++实现
		斐波那契数列: 1,1,2,3,5,8,13,21,34,.... //求斐波那契数列第n项的值 //1,1,2,3,5,8,13,21,34... //1.递归: //缺点:当n过大时,递归 ... 
- 洛谷P1962 斐波那契数列 || P1349 广义斐波那契数列[矩阵乘法]
		P1962 斐波那契数列 大家都知道,斐波那契数列是满足如下性质的一个数列: • f(1) = 1 • f(2) = 1 • f(n) = f(n-1) + f(n-2) (n ≥ 2 且 n 为整数 ... 
- Python递归及斐波那契数列
		递归函数 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数.举个例子,我们来计算阶乘 n! = 1 * 2 * 3 * ... * n,用函数 fact(n)表示,可 ... 
- 简单Java算法程序实现!斐波那契数列函数~
		java编程基础--斐波那契数列 问题描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 思路:可能出现的情况:(1) n=1 ,一种方法 ;(2)n=2 ... 
- js 斐波那契数列(兔子问题)
		对于JS初学者来说,斐波那契数列一直是个头疼的问题,总是理不清思路. 希望看完这篇文章之后会对你有帮助. 什么是斐波那契数列 : 答: 斐波那契数列,又称黄金分割数列.因数学家列昂纳多·斐波那契(Le ... 
- 剑指offer三: 斐波拉契数列
		斐波拉契数列是指这样一个数列: F(1)=1; F(2)=1; F(n)=F(n-1)+F(n); public class Solution { public int Fibonacci(int n ... 
随机推荐
- $Java-json系列(二):用JSONObject解析和处理json数据
			本文中主要介绍JSONObject处理json数据时候的一些常用场景和方法. (一)jar包下载 所需jar包打包下载百度网盘地址:https://pan.baidu.com/s/1c27Uyre ( ... 
- 027_编写MapReduce的模板类Mapper、Reducer和Driver
			模板类编写好后写MapReduce程序,的模板类编写好以后只需要改参数就行了,代码如下: package org.dragon.hadoop.mr.module; import java.io.IOE ... 
- vscode常用快捷键及常用设置
			快捷键 ctrl+b 切换侧边栏 ctrl+\ 拆分编辑器 ctrl+鼠标滚轮 缩放编辑器的字体 alt+shift+f 整理代码格式 alt+z 切换自动换行 ctrl+· 打开终端调试 ctrl+ ... 
- Mybatis一对多/多对多查询时只查出了一条数据
			问题描述: 如果三表(包括了关系表)级联查询,主表和明细表的主键都是id的话,明细表的多条数据只能查询出来第一条/最后一条数据. 三个表,权限表(Permission),权限组表(Permission ... 
- 【leetcode刷题笔记】Insert Interval
			Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessa ... 
- 面向过程编程实例------grep-rl 'root 路径
			#应用:grep -rl 'root' /etc import os def deco(func): def wrapper(*args): g=func(*args) next(g) return ... 
- python爬虫之urllib库
			请求库 urllib urllib主要分为几个部分 urllib.request 发送请求urllib.error 处理请求过程中出现的异常urllib.parse 处理urlurllib.robot ... 
- tomcat 日志禁用
			1.禁用catalina.out日志通过修改catalina.sh配置可以控制tomcat不生成该文件只要将if [ -z "$CATALINA_OUT" ] ; then CAT ... 
- Java -- JDBC 事务处理, 事务的隔离级别 脏读  不可重复读 等...
			1. 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功. 数据库开启事务命令 •start transaction 开启事务 •Rollback 回滚事务 •Commit ... 
- JavaWeb -- Servlet+JSP+JavaBean(MVC)模式
			Servlet+JSP+JavaBean(MVC)模式适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp负责数据显示,javabean负责封装数据. Servlet+JSP ... 
