您的位置:首页 > 其它

斐波那契数列递归及非递归实现及其应用

2017-04-03 18:31 253 查看
非斐波那契数列的实现及其应用:

特点:

a1,a2已知

a(n)=a(n-1) +a(n-2) n>=3

举例:1,1,2,3,5,8,13,21,34,55………

(1)斐波那契递归求解

a.思想:反向分析法,求 a(n),知道他的a(n-1)和a(n)个的值,以此递归,跳出条件为n=1或n=2;

b.数学模型:

f(n)={ 1 n=1;

{ 2 n=2;

{ f(n-1)+f(n-2) n>2;

(2) 代码

int Fibo(int n)

{

if (n == 1)

return 1;

if (n == 2)

return 2;

else

{

return Fibo(n - 1) + Fibo(n - 2);

}

}


(2) 非递归

a.思想:总结规律 a1=1; a2=1;a3=a1+a2;(循环n-2次)

b.代码:
int FiBo(int n)

{

int  an= 0;

int a1, a2;

a = b = 1;

if (n ==1)

return a1;

if (n == 2)

return a2;

else

{

for (int i = 3; i <= n; i++)

{

an = a1 + a2;

a 1= a2;

a2= an;

}

}

return  an;

}


(3) 斐波那契数列的应用(a.b是剑指offer的题)

a. n 阶楼梯,一次可以上一台,一次可以上两台,共有多少中上法;

b. 2*1的矩阵横着竖着去覆盖2*n的矩阵,总共有几种方法;

c. 兔子繁殖

d.蜂房问题

e.花瓣问题 等
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息