斐波那契数列递归及非递归实现及其应用
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) 代码
(2) 非递归
a.思想:总结规律 a1=1; a2=1;a3=a1+a2;(循环n-2次)
b.代码:
(3) 斐波那契数列的应用(a.b是剑指offer的题)
a. n 阶楼梯,一次可以上一台,一次可以上两台,共有多少中上法;
b. 2*1的矩阵横着竖着去覆盖2*n的矩阵,总共有几种方法;
c. 兔子繁殖
d.蜂房问题
e.花瓣问题 等
特点:
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.花瓣问题 等
相关文章推荐
- C#中命令行参数的应用领域及其实现
- Priority Queue(Heap)的实现及其应用
- 用递归实现斐波那契数列(Fibonacci Sequence )的函数
- 斐波那契数列-递归实现
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- 模糊聚类算法(FCM)和硬聚类算法(HCM)的VB6.0实现及其应用
- 栈及其应用 - C语言实现(摘自数据结构与算法分析 C语言描述)
- 斐波那契数列 递归与非递归实现
- 数学趣题——应用递归实现数制转换
- 一种变进制数及其应用(全排列之Hash实现)
- 一种变进制数及其应用(全排列之Hash实现)
- 模糊聚类算法(FCM)和硬聚类算法(HCM)的VB6.0实现及其应用
- HZHOST实现自定义FSO权限的方法及其应用
- C#中命令行参数的应用领域及其实现
- C#单链表的实现及其应用
- Priority Queue(Heap)的实现及其应用
- Visual C++中窗口子类化技术的实现及其应用
- Visual C++中窗口子类化技术的实现及其应用
- 数据结构的应用——使用栈和递归实现Hanoi问题求解
- 使用递归实现斐波那契数列