数据结构实例<二>(斐波那契数列)入门
来源:互联网 发布:换手率炒股软件 编辑:程序博客网 时间:2024/05/20 13:05
题目:
查找斐波纳契数列中第 N 个数。
所谓的斐波纳契数列是指:
- 前2个数是 0 和 1 。
- 第 i 个数是第 i-1 个数和第i-2 个数的和。
斐波纳契数列的前10个数字是:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ...
* 无论递归还是非递归讨论的总是三种情况:n<=0 0<n<=2 n>2
*特殊讨论为0 1这两种情况。
*0是第0个元素且是第0个元素的值。
*1的情况有两种,第1个和第2个。
递归算法:
/// <summary> /// 递归算法 /// </summary> /// <param name="n"></param> /// <returns></returns> public int Fibonacci(int n) { if (n <= 0) { return 0; } if (n > 0 && n <= 2) { return 1; } return this.Fibonacci(n - 1) + this.Fibonacci(n - 2); }
*递归算法容易理解,嵌套调用Function直至返回结果。(有条件的可以 单步调试即可理解!)
非递归算法:
public static int GeneralFibonacci(int n) { int sum = 0; //穷举第一个和第二个数列元素 int item1 = 1; int item2 = 1; if (n <= 0) { return sum; } if (n > 0 && n <= 2) { sum = 1; return sum; } //循环变量应该从0开始长度为n-2 (总长n - 两个穷举数列2) for (int i = 0; i < n - 2; i++) { sum = item1 + item2; item1 = item2; item2 = sum; } return sum; }*非递归算法重要的地方再议循环这部分。
1.首先穷举第1和第2两个元素。
2.确定循环长度n-2
3. 等价替换sum 直至循环结束 sum即为所得。
0 0
- 数据结构实例<二>(斐波那契数列)入门
- 递归入门(二) -- 斐波那契数列
- Android NDK入门实例 计算斐波那契数列二生成.so库文件
- 数据结构--栈--斐波那契数列
- Java斐波那契数列实例
- python实例(斐波那契数列)
- 斐波那契数列法二
- 斐波那契数列(二)
- 斐波那契数列Java版(入门级)
- 试验一 斐波那契数列(二)
- Android NDK入门实例 计算斐波那契数列一生成jni头文件
- 数据结构学习之斐波那契数列
- 【数据结构】递归算法—斐波那契数列
- 数据结构_递归算法_斐波那契数列
- Java数据结构与算法---斐波那契数列Fibonacci
- 数组以及数组操作实例 斐波那契数列
- 斐波那契数列实例讲解以及C++实现
- python 小实例 斐波那契数列
- 添加百度自动推送工具代码以提高收录可能
- go 协程与主线程强占运行
- WEB入门.五 页面设计简介
- 【Java每日一题】20170216
- Go 之旅二: 流程控制语句
- 数据结构实例<二>(斐波那契数列)入门
- Java概述与语法
- yocto 菜谱bb的选择
- App启动时页面出现白屏或者黑屏的问题(过度期间)
- R语言聚类算法之k均值聚类(K-means)
- I,P,B帧和PTS,DTS的关系
- 简单安装opencv方法
- C++之public、private、protected(二)构造函数定义private或protected好处详解
- JVM内存分配、垃圾收集器和常用参数