斐波那契数列
来源:互联网 发布:人的极限寿命知乎 编辑:程序博客网 时间:2024/06/05 17:14
Fibonacci数列定义:
矩阵写法:
矩阵递推写法:
下面介绍求解Fibonacci数列的3种方法:迭代法、递归法、矩阵法
//-------------------------------------------------//--函数名:Fibonacci_iterate//--功能描述:迭代对斐波那契数列求和//--形参描述:f1:初值1 f2:初值2 sequence_length:序列长度 //--返回值: //-------------------------------------------------FiboData Fibonacci_iterate(FiboData f1,FiboData f2,int sequence_length)//迭代法{if(sequence_length<=MaxFiboNum){if(sequence_length == 1){return f1;}else if (sequence_length == 2){return f2;}else{int Icount = 0;FiboData Fibo_new = 0;FiboData Fibo_prev1 = f2;FiboData Fibo_prev2 = f1;for(Icount = 1;Icount <= sequence_length-2;Icount++){Fibo_new = Fibo_prev1 + Fibo_prev2;Fibo_prev2 = Fibo_prev1;Fibo_prev1 = Fibo_new;}return Fibo_new;}}else{printf("Error! The max index of Fibonacci defined 'int' is %d.\n",MaxFiboNum);}}
//--函数名:Fibonacci_recurs//--功能描述:递归法对斐波那契数列求和//--形参描述:f1:初值1 f2:初值2 sequence_length:序列长度 //--返回值: //-------------------------------------------------FiboData Fibonacci_recurs(FiboData f1,FiboData f2,int sequence_length)//递归法{FiboData Fibo_new = 0;if(sequence_length<=MaxFiboNum){if(sequence_length == 1){return f1;}else if (sequence_length == 2){return f2;}else{Fibo_new = Fibonacci_recurs(f1,f2,sequence_length-1) + Fibonacci_recurs(f1,f2,sequence_length-2);return Fibo_new;}}else{printf("Error! The max number of Fibonacci defined 'int' is %d.\n",MaxFiboNum);}}
//-------------------------------------------------//--函数名:Fibonacci_matrix//--功能描述:矩阵法对斐波那契数列求和//--形参描述:f1:初值1 f2:初值2 sequence_length:序列长度 //--返回值: //-------------------------------------------------FiboData Fibonacci_matrix(FiboData f1,FiboData f2,int sequence_length)//{ if(sequence_length<=MaxFiboNum){if(sequence_length == 1){return f1;}else if (sequence_length == 2){return f2;}else{int Icount = 0;FiboData Fibo_new=0;FiboData TempMatrix11 = 0;//矩阵元素FiboData TempMatrix12 = 0;//矩阵元素FiboData TempMatrix21 = 0;//矩阵元素FiboData TempMatrix22 = 0;//矩阵元素FiboData FibonacciMatrix11 = 1;FiboData FibonacciMatrix12 = 1;FiboData FibonacciMatrix21 = 1;FiboData FibonacciMatrix22 = 0;for(Icount = 1;Icount<sequence_length-2;Icount++){TempMatrix11 = FibonacciMatrix11 + FibonacciMatrix12;TempMatrix12 = FibonacciMatrix11 ;TempMatrix21 = FibonacciMatrix21 + FibonacciMatrix22;TempMatrix22 = FibonacciMatrix21 ;FibonacciMatrix11 = TempMatrix11 ;FibonacciMatrix12 = TempMatrix12 ;FibonacciMatrix21 = TempMatrix21 ;FibonacciMatrix22 = TempMatrix22 ;}Fibo_new = FibonacciMatrix11*f2 + FibonacciMatrix21*f1;return Fibo_new;}}else{printf("Error! The max number of Fibonacci defined 'int' is %d.\n",MaxFiboNum);}}
0 0
- 斐波那契数列数列计算
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 把苹果iPhone手机传文件传给安卓系统手机
- Codeforces Round #282 (Div. 2) C
- Struts2学习笔记——Struts框架的工作原理(源码调试)
- NANDFLASH学习 <s3c2440>
- android网络通信之HttpUrlConnection
- 斐波那契数列
- Android 通过调用谷歌语音系统接口弹出语音识别对话框的方法 .
- JavaScript基础-BOM&DOM
- 二叉树的非递归实现
- 根据坐标系统构造转换矩阵(不包含缩放)
- 黑马程序员_Java基础_IO流(File类和properties类相关操作)
- 黑马程序员_IOS内存管理学习总结(三)
- 【习题3-3】 UVA - 1225 Digit Counting
- 黑马程序员_Java基础_多线程1