斐波那契数列--算法

斐波那契数列--算法_第1张图片
2017-7-5

[1] 问题描述

有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假设兔子都不死,问每个月的兔子总数是多少?

解:

1月 | 2月| 3月| 4月| 5月| 6月| 7月| 8月| 9月| 10月| 11月| 12月
----|------|----
1对 | 1对| 2对| 3对| 5对| 8对| 13对| 21对| 34对| 55对| 89对| 144对

由上可设,在 n 月有兔子总共 a 对,n+1 月总共有 b 对,在 n+2 月必定总共有 a+b 对,

则:

[2] 斐波那契数列

斐波那契数列在数学上是以递归的方法定义的:

a0=0
a1=1
an=an-1+an-2(n≥2)

[3] 解决方案

1.定义三个变量a1,a2,an,for循环,根据规律可知,第三个数的值等于前两个数相加,得到第三个数时,把第二个数的值赋值给第一个数,第三个数的值赋值给第二个数,然后求得第四个数的值,以此循环。

斐波那契数列--算法_第2张图片
2017-7-5

2.递归方法解决,getFib(j)=getFib(i-1)+getFib(i-2),以次循环。

斐波那契数列--算法_第3张图片
2017-7-5

3.定义一个数组,arr[i]=arr[i-1]+arr[i-2];以此循环。

斐波那契数列--算法_第4张图片
2017-7-5

4.python 解法,很简洁。

斐波那契数列--算法_第5张图片
2017-7-5

你可能感兴趣的:(斐波那契数列--算法)