php实现菲波那切数列和杨辉三角

1.递归  显示斐波那契数列

<?PHP

function recursion($num){

//判断是否小于0

if($num<0){

return -1;

}

if($num==1){

return 0;

}

if($num==2 || $num==3){

return 1;

}

return recursion($num-1)+recursion($num-2);

}

//循环显示

for($i=1;$i<=20;$i++) {

$str .= ‘,‘,recursion($i);

}

$str = substr($str,1);

echo $str;

?>

2.迭代 显示斐波那契数列

function diedai($num){

if($num<1){

return -1;

}

//默认前两位为1

$arr[0] = 0;

$arr[1] = 1;

for ($i=2; $i <$num ; $i++) {

$arr[$i] = $arr[$i-1]+$arr[$i-2];

}

return implode(‘,‘, $arr);

}

echo diedai(6);

?>

3. 杨辉三角

<table border="1">

<?php

$num = 14;

$arr = array();

for($i=1;$i<=$num;$i++)

{

echo "<tr>";

for($j=1;$j<=$i;$j++)

{

if($j==0||$i==$j)

{

$arr[$i][$j] = 1;

}

else

{

$arr[$i][$j] = $arr[$i-1][$j]+$arr[$i-1][$j-1];

}

echo "<td>";

echo $arr[$i][$j];

echo "</td>";

}

echo "</tr>";

}

?>

时间: 2024-10-05 05:31:18

php实现菲波那切数列和杨辉三角的相关文章

js实现菲波那切数列的两种常用方法

菲波那切数列即:1 1 2 3 5 8......,后面的数字是前面两个数字的和,并且第一个,第二个数字都是1,用js实现 的两种方法,一种通过常用的递归调用,第二种不通过递归,而是通过强大的闭包实现. 1.递归实现 // fab 1 1 2 3 5 8 function fab(num) { if(num==1 || num==2){ return 1; }else{ return fab(num-1)+fab(num-2); } } alert(fab(5)) 2.闭包实现.闭包主要在于:1

菲波纳切数列

写一个函数,输入n,求斐波那契数列(Fibonacci)数列的第n项.斐波那契数列定义如下: 当n=0时,f(n)=0;当n=1时,f(n)=1;当n>1时,f(n)=f(n-1)+f(n-2). 效率很低的解乏,挑剔的面试官不会喜欢. public int fibo(int n){ if(n<=0) return 0; if(n==1) return 1; return fibo(n-1)+fibo(n-2); } 我们以求解f(10)为例来分析递归的求解过程.想求得f(10),需要先求的f

hduoj 1848 Fibonacci again and again【sg函数】【博弈】【菲波那切数列】

Fibonacci again and again Description 任何一个大学生对菲波那契数列(Fibonacci numbers)应该都不会陌生,它是这样定义的: F(1)=1; F(2)=2; F(n)=F(n-1)+F(n-2)(n>=3); 所以,1,2,3,5,8,13--就是菲波那契数列. 在HDOJ上有不少相关的题目,比如1005 Fibonacci again就是曾经的浙江省赛题. 今天,又一个关于Fibonacci的题目出现了,它是一个小游戏,定义如下: 1.  这是

菲波那切数列

一个数组:1,1,2,3,5,8,13,21...+m: static void Main(string[] args) { Console.Write("输入想求的斐波那契数列项数:"); int n = Convert.ToInt32(Console.ReadLine()); //递归实现 Console.WriteLine("斐波那契数列数列递归算出的第{0}项为:{1}", n, Calculate(n)); } static int Calculate(i

BestCoder Round #71 (div.2) (hdu 5620 菲波那切数列变形)

KK's Steel Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 350    Accepted Submission(s): 166 Problem Description Our lovely KK has a difficult mathematical problem:he has a N(1≤N≤1018) meters s

hduoj 1865 1string 【大数】【菲波那切数列】

1sting Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5310    Accepted Submission(s): 2030 Problem Description You will be given a string which only contains ‘1’; You can merge two adjacent ‘1

带有记忆的菲波那切数列

public static int Fib(int n) { int q=0; int []r=new int[n+1]; r[0]=1; r[1]=1; for(int j=2;j<=n;j++) { r[j]=r[j-1]+r[j-2]; } return r[n]; }

leetcode70 C++ 4ms 爬楼梯 菲波那切数列

class Solution { public: int climbStairs(int n) { int a = 1; int b = 1; int temp; while(n>0){ n--; temp = a; a = b; b += temp; } return a; } }; 原文地址:https://www.cnblogs.com/theodoric008/p/9413343.html

js算法集合(二) javascript实现斐波那契数列 (兔子数列) Javascript实现杨辉三角

js算法集合(二)  斐波那契数列.杨辉三角 ★ 上一次我跟大家分享一下做水仙花数的算法的思路,并对其扩展到自幂数的算法,这次,我们来对斐波那契数列和杨辉三角进行研究,来加深对Javascript的理解. 一.Javascript实现斐波那契数列 ①要用Javascript实现斐波那契数列,我们首先要了解什么是斐波那契数列:斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为